12 releases (6 breaking)

new 0.8.1 Nov 23, 2024
0.7.2 Nov 7, 2024

#35 in GUI

Download history 101/week @ 2024-09-14 84/week @ 2024-09-21 226/week @ 2024-09-28 115/week @ 2024-10-05 363/week @ 2024-10-12 17/week @ 2024-10-19 216/week @ 2024-10-26 291/week @ 2024-11-02 44/week @ 2024-11-09 64/week @ 2024-11-16

974 downloads per month

MIT license

350KB
8K SLoC

Yoda - Browser for Gemini protocol

GTK 4 / Libadwaita client written in Rust

[!IMPORTANT] Project in development!

image

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
  • 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
    • Gemtext (by ggemtext)
      • Code (inline/multiline)
        • Inline
        • Multiline
          • Alt
        • Terminal emulation*
        • Syntax highlight*
      • Header
        • H1
        • H2
        • H3
      • Link
        • Address
        • Date
        • Alt
      • List
      • Quote
    • Gemfeed
    • Titan
  • NEX - useful for networks with build-in encryption (e.g. Yggdrasil)
  • file:// - localhost browser
  • config:// - low-level key/value settings editor

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.16
  • GDK PixBuf 2.42
  • Gio 2.82
  • Glib 2.56
  • GTK 4.16
  • Libadwaita 1.6

Use rustup installer to setup latest Rust compiler and Cargo package manager:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Debian

todo

Fedora

sudo dnf install git gcc\
                 cairo-devel glib2-devel gtk4-devel libadwaita-devel pango-devel\
                 sqlite-devel

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 clippy for final optimization

Contributors

wakatime StandWithUkraine

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

Dependencies

~48MB
~1M SLoC