A Gemini protocol browser in a Gtk+ widget (gtk4-rs)
Go to file
Nathan Fisher 2d30380086 Store fonts as strings rather than FontDescription 2023-03-03 00:24:55 -05:00
src Store fonts as strings rather than FontDescription 2023-03-03 00:24:55 -05:00
.gitignore Integrated new gemtext parser 2022-05-20 10:15:22 -04:00
Cargo.toml Switch to `bucky` crate for protocol support 2023-02-18 23:37:56 -05:00
LICENSE.md Moved gemini related functionality from gmi into scheme::gemini module 2022-03-03 09:50:18 -05:00
README.md Fix regression in GopherMap trait 2022-05-16 12:09:40 -04:00
RELEASE_NOTES.md Update release notes 2022-06-07 00:29:45 -04:00
deny.toml Add deny.toml for `cargo deny` 2022-06-11 23:42:38 -04:00

README.md

GemView

Contents

Introduction

GemView is a gemini protocol browser widget for gtk+ (version 4) implemented in Rust.

Features

  • Browse and render gemini gemtext content
  • Display plain text over gemini
  • Display images over gemini
  • Display text and images from data:// url's
  • Browse and render gopher maps, plain text and images over gopher
  • Display finger protocol content
  • Browse local files and directories via 'file://' url's
  • Spartan protocol support
  • Open http(s) links in a normal browser
  • User customizable fonts
  • User customizable colors (via CSS)
  • Back/forward list
  • History

Usage

[dependencies]
gemview = 0.2.0

[dependencies.gtk]
version = "~0.4"
package = "gtk4"
use gemview::GemView;
use gtk::prelude::*;

let browser = GemView::default();
let scroller = gtk::builders::ScrolledWindowBuilder::new()
    .child(&browser)
    .hexpand(true)
    .vexpand(true)
    .build();
let window = gtk::builders::WindowBuilder::new()
    .child(&scroller)
    .title("GemView")
    .build()
window.show();
browser.visit("gemini://gemini.circumlunar.space");