- Notifications
You must be signed in to change notification settings - Fork0
Browser for Gemini Protocol
License
NotificationsYou must be signed in to change notification settings
YGGverse/Yoda
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Yoda - Browser forGemini protocol
GTK 4 / Libadwaita client written in Rust
Important
Project in development, for stable version use crates.io release!
- Multi-tab
- Hotkeys
- Bookmarks
- Browser window
- Recent bookmarks list
- Build-in multimedia support
- Certificates
- Generate new identity
- Select for path
- Export to PEM
- Import from PEM
- Delete
- Custom search providers
- Downloads
- Browser window
- Save page as file
- Unsupported content type downloads
- History
- Browser window
- Page navigation
- Recently visited
- Recently closed
- Proxy
- Session
- Window
- Size
- Tabs
- Pin
- Page
- Content (cache)
- Meta
- Title
- Navigation
- Request
- History
- Window
- User settings
- Gemini
- Status code
- Success
20
- Input
10
Input11
Sensitive input
- Redirection
30
Temporary31
Permanent
- Temporary failure
40
Unspecified condition41
Server unavailable42
CGI error43
Proxy error44
Slow down
- Permanent failure
50
General51
Not found52
Gone53
Proxy request refused59
Bad request
- Client certificates
60
Certificate requested61
Certificate not authorized62
Certificate not valid
- Success
- Gemtext (byggemtext)
- Code (inline/multiline)
- Inline
- Multiline
- Alt
- Syntax highlight* (bysyntect)
- Terminal emulation* (byansi-parser)
- foreground
- background
- intensity
- italic
- underline
- blink
- reversed
- strikethrough
- Header
- H1
- H2
- H3
- Link
- Address
- Date
- Alt
- List
- Quote
- Code (inline/multiline)
- Gemfeed
- by headers
- by links
- by content hash*
- Titan
- Binary data (file uploads)
- Text input
- Header options
- MIME
- Token
- Status code
- NEX - useful for networks with build-in encryption (e.g.Yggdrasil)
- System
file://
- local files browser
- Request prefix
about:
config
- low-level key/value settings editor
bookmarks:
- bookmarks browserhistory:
- history browserdownload:
- save location to filesource:
- source viewer (bysourceview5)
text/gemini
text/plain
image/gif
image/jpeg
image/png
image/webp
image/svg+xml
audio/flac
audio/mpeg
audio/ogg
- Cairo
1.18
- GdkPixBuf
2.42
- Glib
2.80
- Gtk
4.14
- GtkSourceView
5.14
- libadwaita
1.5
(Ubuntu 24.04+) - libspelling
0.1
sudo apt install git curl build-essential\ libgtk-4-dev libgtksourceview-5-dev libglib2.0-dev libadwaita-1-dev libspelling-1-dev\ libsqlite3-dev libssl-dev
sudo dnf install git curl gcc\ gtk4-devel gtksourceview5-devel glib2-devel libadwaita-devel libspelling-devel\ sqlite-devel openssl-devel
Userustup installer to setup latest Rust compiler and Cargo package manager:
curl --proto'=https' --tlsv1.2 -sSf https://sh.rustup.rs| sh
cargo install Yoda
- run
Yoda
git clone https://github.com/YGGverse/Yoda.gitcd Yodacargo build
cargo run
- Before commit, please make sure:
- new branch created for every new PR
git checkout -b 'contribution-name'
- new code follows commonrustfmt style
cargo fmt --check
- run
cargo clippy
for final optimization
- new branch created for every new PR
UI localization planed as Crowdin repository, but it is not implemented yet.
To install new spell dictionaries in Fedora, usesudo dnf install hunspell-CODE
- just replace
CODE
with the locale code you want
- Package version in repository increase aftercrates.io release
- Until DB migration not implemented, application will create new profile on every
CARGO_PKG_VERSION_MAJOR
.CARGO_PKG_VERSION_MINOR
change
- ggemtext - Glib-orientedGemtext API
- ggemini - Glib-oriented client forGemini protocol