mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 16:45:27 +00:00
5 KiB
5 KiB
Yoda - Browser for Gemini protocol
GTK 4 / Libadwaita client written in Rust
Important
Project in development!
Features
Interface
- Multi-tab
- Hotkeys
- Bookmarks
- Build-in multimedia support
- Certificates
- Downloads
- History
- Proxy
- Session
- Window
- Size
- Tabs
- Pin
- Page
- Content (cache)
- Meta
- Title
- Navigation
- Request
- History
- Window
- User settings
Protocols
- Gemini
- Status code
- Success
20
- Input
10Input11Sensitive input
- Redirection
30Temporary31Permanent
- Temporary failure
40Unspecified condition41Server unavailable42CGI error43Proxy error44Slow down
- Permanent failure
50General51Not found52Gone53Proxy request refused59Bad request
- Client certificates
60Certificate requested61Certificate not authorized62Certificate not valid
- Success
- Gemtext (by ggemtext)
- Gemfeed
- Titan
- Status code
- NEX - useful for networks with build-in encryption (e.g. Yggdrasil)
- Localhost
file://- localhost browserconfig://- low-level key/value settings editorview-source://- page source viewer (where supported)
Media types
Text
text/geminitext/plain
Images
image/gifimage/jpegimage/pngimage/webpimage/svg+xml
Audio
audio/flacaudio/mpegaudio/ogg
Video
Build
Requirements
- Cairo
1.18 - GDK PixBuf
2.42 - Glib
2.80 - GTK
4.14 - Libadwaita
1.5(Ubuntu 24.04+)
Debian
sudo apt install git curl build-essential\
libgtk-4-dev libadwaita-1-dev\
libsqlite3-dev libssl-dev
Fedora
sudo dnf install git curl gcc\
gtk4-devel libadwaita-devel\
sqlite-devel openssl-devel
Rust
Use rustup installer to setup latest Rust compiler and Cargo package manager:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install
Stable
cargo install Yoda
Repository
git clone https://github.com/YGGverse/Yoda.git
cd Yoda
cargo build
Development
Contribution
- Before commit, please make sure:
- new branch created for every new PR
git checkout -b 'contribution-name' - new code follows common rustfmt style
cargo fmt --check - run
cargo clippyfor final optimization
- new branch created for every new PR
Contributors
Releases
- Package version in repository increase after crates.io release
- Until DB migration not implemented, application will create new profile on
CARGO_PKG_VERSION_MAJOR.CARGO_PKG_VERSION_MINORchange
See also
- ggemtext - Glib-oriented Gemtext API
- ggemini - Glib-oriented client for Gemini protocol