14 releases (7 breaking)
new 0.9.1 | Dec 11, 2024 |
---|---|
0.8.1 | Nov 23, 2024 |
#46 in Network programming
1,283 downloads per month
415KB
10K
SLoC
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
-
10
Input -
11
Sensitive input
-
- Redirection
-
30
Temporary -
31
Permanent
-
- Temporary failure
-
40
Unspecified condition -
41
Server unavailable -
42
CGI error -
43
Proxy error -
44
Slow down
-
- Permanent failure
-
50
General -
51
Not found -
52
Gone -
53
Proxy request refused -
59
Bad request
-
- Client certificates
-
60
Certificate requested -
61
Certificate not authorized -
62
Certificate not valid
-
- Success
- Gemtext (by ggemtext)
- Code (inline/multiline)
- Inline
- Multiline
- Alt
- Syntax highlight* (by syntect)
- Terminal emulation* (by ansi-parser)
- foreground
- background
- intensity
- italic
- underline
- blink
- reversed
- hidden
- strikethrough
- Header
- H1
- H2
- H3
- Link
- Address
- Date
- Alt
- List
- Quote
- Code (inline/multiline)
- Gemfeed
- Titan
- Status code
- NEX - useful for networks with build-in encryption (e.g. Yggdrasil)
- Localhost
-
file://
- local file browser
-
- Request prefix
-
about:
-
config
- low-level key/value settings editor
-
-
download:
- save location to file -
source:
- source viewer (by sourceview5)
-
Media types
Text
-
text/gemini
-
text/plain
Images
-
image/gif
-
image/jpeg
-
image/png
-
image/webp
-
image/svg+xml
Audio
-
audio/flac
-
audio/mpeg
-
audio/ogg
Video
Build
Requirements
- Cairo
1.18
- GdkPixBuf
2.42
- Glib
2.80
- Gtk
4.14
- GtkSourceView
5.14
- Libadwaita
1.5
(Ubuntu 24.04+)
Debian
sudo apt install git curl build-essential\
libgtk-4-dev libgtksourceview-5-dev libadwaita-1-dev\
libsqlite3-dev libssl-dev
Fedora
sudo dnf install git curl gcc\
gtk4-devel gtksourceview5-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
- run
Yoda
Repository
git clone https://github.com/YGGverse/Yoda.git
cd Yoda
cargo build
cargo run
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 clippy
for 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_MINOR
change
See also
- ggemtext - Glib-oriented Gemtext API
- ggemini - Glib-oriented client for Gemini protocol
Dependencies
~52MB
~1M SLoC