Giter Club home page Giter Club logo

grin-gui's Introduction

Grin GUI

This is a very Work-in-Progress implementation of the Grin Core Team's Integrated GUI for both Grin Wallet and Grin Node.

Goals

The Grin team has spent countless hours making Grin's infrastructure extremely flexible, with multiple ways of running nodes and wallets and extensive developer APIs and documentation for both.

This project aims to pull all of this work together to create a lightweight, flexible and user-friendly method of using Grin. This includes:

  • Presenting a completely working Single UI for both Grin Node and Grin Wallet.
  • Allowing all wallet transaction operations to be performed in a user-friendly and intuitive manner
  • Create and manage a Grin node in-application if desired, while also retaining the options to communicate with other configured or public nodes.
  • The ability to create, configure and manage multiple wallets and nodes including existing installations

Status

NOTHING WORKS AT PRESENT

  • UI Framework iced-rs has been selected.
  • Overall structure of project is in place based on ajour as a sample project
  • Some refactoring of project structure to better separate GUI elements and events
  • Theming, localization, UI scaling is in place
  • Windows systray functionality in place

Current Focus

In contrast to most Grin development, Grin GUI is being developed on Windows, with Windows being the first-class citizen. MacOS and Linux will of course also be supported.

Current work is:

  • Including grin wallet + API
  • First-time 'Out of Box' setup and creation of a grin wallet from the UI
  • Wallet + Node configuration options

Contributing

Yes please! This is an excellent project for anyone wanting to get their feet wet with Grin development. Detailed knowledge of Grin's internals is not required, just a familiarity with Grin's APIs and a willingness to dive into iced-rs.

See Grin project contribution for general guidelines we'll eventually be using, however this project is still far too new for most of this to be relevant.

Building

Prerequisites

  • rust: Install using rustup: https://rustup.rs
    • Rustc version >= 1.59
    • it is recommended to build using the latest version.
    • If rust is already installed, you can update to the latest version by running rustup update

Windows

  • llvm must be installed

Linux

For Debian-based distributions (Debian, Ubuntu, Mint, etc), all in one line (except Rust):

  • sudo apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm libfontconfig libfontconfig1-dev

(instructions not yet complete)

Acknowledgement

  • Thanks to iced-rs for a workable native Rust GUI
  • Thank you to ajour for a completely working, non-trivial and tested-in-the-wild iced-rs project to use as a base for development.

License

GPL 3.0 (for the time being)

Note this differs from the rest of the Grin codebase (which uses Apache 2) due to ajour's licensing. Currently attempting to get copyright holder's permission to change this to Apache 2.

grin-gui's People

Contributors

yeastplume avatar sheldonth avatar deevope avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.