#gemini #browser #gtk #networking

gemview

A Gemini protocol browser in a Gtk+ (v4) widget

7 releases (4 breaking)

0.5.2 Jun 7, 2022
0.5.1 Jun 4, 2022
0.4.0 Apr 13, 2022
0.3.0 Mar 13, 2022
0.1.0 Feb 24, 2022

#472 in GUI

LGPL-3.0

120KB
2.5K SLoC

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");

Dependencies

~28–40MB
~842K SLoC