mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 08:35:28 +00:00
Browser for Gemini Protocol
https://crates.io/crates/Yoda
19001965browserclientflatpakgeminigemini-protocolggeminiggemtextgtklibadwaitamarkdownmaxmindnexnex-protocolrustsourceviewsqlitesyntecttitan
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| rustfmt.toml | ||
Yoda - Browser for Gemini protocol
Rust / GTK 4 implementation
Important
Project in development!
Install
Stable
cargo install Yoda
Repository
git clone https://github.com/YGGverse/Yoda.git
cd Yoda
git checkout Rust-GTK4
cargo run
Development
This guide in process
Modules
browser
Filesystem
- Composition pattern, using standard
mod.rsmodel - One mod = one widget. Create new mod for new widget implementation
Codebase
- The codebase of module must be as minimal as possible: separate different tasks to submodules
- Every module must:
- implement only one
struct(same as one file for one class) - provide at least:
- one constructor that must:
- return raw
structwithout cover to any kind of smartstdorglibpointers
- return raw
- one constructor that must:
- access 1 level of child API, never parents (e.g.
super)
- implement only one
Contribution
- before commit, make sure:
- new branch created for every new PR
git checkout -b 'contribution-name' - new code follows common rustfmt style
cargo fmt --check
- new branch created for every new PR