2024-09-26 00:29:08 +03:00
2024-09-18 15:54:15 +03:00
2024-09-24 19:12:45 +03:00
2024-09-18 15:54:15 +03:00
2024-09-26 00:29:08 +03:00
2024-09-20 19:09:23 +03:00

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.rs model
  • 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 struct without cover to any kind of smart std or glib pointers
    • access 1 level of child API, never parents (e.g.super)

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

See also

  • CPP-GTK4 - C++ / GTK 4 implementation
  • PHP-GTK3 - PHP / GTK 3 experimental branch
Languages
PHP 100%