SMOLNET PORTAL home about changes

Awesome Gemini

https://awesome.re (https://awesome.re)
Awesome [IMG] (https://awesome.re)


A collection of awesome things regarding the

gemini protocol (https://gemini.circumlunar.space)

ecosystem.

Please contribute to this list to link to all the awesome gemini projects out there.

Repo mirrors:

*

https://tildegit.org/bqb/awesome-gemini (https://tildegit.org)

*

https://git.sr.ht/~kr1sp1n/awesome-gemini (https://git.sr.ht)

*

https://github.com/kr1sp1n/awesome-gemini/ (https://github.com)


What is Gemini


Excerpt from gemini.circumlunar.space (https://gemini.circumlunar.space)

:

Gemini is a client-server protocol featuring request-response transactions, broadly similar to gopher or HTTP.

Connections are closed at the end of a single transaction and cannot be reused. When Gemini is served over TCP/IP, servers should listen on port 1965 (the first manned Gemini mission, Gemini 3, flew in March'65). This is an unprivileged port, so it's very easy to run a server as a "nobody" user, even if e.g. the server is written in Go and so can't drop privileges in the traditional fashion.

Gemini Specification


*

protocol (https://gitlab.com)

*

gemini-text (https://gitlab.com)


Contents


  • Clients * Terminal * Graphical * Cross-platform * Mobile * Windows
  • Programming
  • Resources
  • Servers
  • Services
  • Tools
  • Web proxies
  • Bots


Clients


Terminal


*

Amfora (https://github.com)

(Go) - "fancy" terminal client.
*

Asuka (https://git.sr.ht)

(Rust) - an NCurses-based Gemini client.
*

AV-98 (https://tildegit.org)

(Python) - Gemini client derived from the popular VF-1 Gopher client.
*

bollux (https://sr.ht)

(Bash) - bash Gemini client.
*

bombadillo (https://rawtext.club)

(Go) - combined Gopher, Gemini, Finger, and File client with vim-inspired key mappings.
*

cgmnlm (https://src.clttr.info)

(C) - colorful gemini line-mode client, fork of gmni.
*

diohsc (https://mbays.sdf.org)

(Haskell) - simple line-based command-response terminal user interface with ANSI colour.
*

Elpher (https://thelambdalab.xyz)

(Emacs) - combined Gopher and Gemini client for the popular text editor / operating system.
*

gem.awk (git://git.vgx.fr)

(Awk) - minimal but usable interactive Gemini client in < 250 LOC of Awk.
*

gembro (https://git.sr.ht)

(Go) - gemini client using

Bubble Tea (https://github.com)

.
*

gemini-demo-1 (https://tildegit.org)

(Python) - minimal but usable interactive Gemini client in < 100 LOC of Python 3.
*

gemini-demo-2 (https://tildegit.org)

(Lua) - minimal but usable interactive Gemini client in < 100 LOC of Lua.
*

gemini-demo-3 (https://tildegit.org)

(Go) - minimal but usable interactive Gemini client in not quite < 100 LOC of Go.
*

gemini-fetch (https://github.com)

(Node.js) - cURL-like CLI for loading content from Gemini URLs.
*

gmni (https://sr.ht)

(C) - CLI utility (like curl) and line-mode browser.
*

Gremlin (https://github.com)

(Rust) - TUI for browsing Gemini space
*

min (https://github.com)

(Go) - supports advanced features like input and client certificate generation.
*

ncgopher (https://github.com)

(Rust) - gopher and gemini client for the modern internet.
*

tinmop (https://www.autistici.org)

(Common Lisp) - opinionated Mastodon and Gemini client

Graphical


# Cross-platform


*

Agregore (https://github.com)

- (Electron.js) - peer to peer web browser with support for loading Gemini pages.
*

Alrisha (https://git.sr.ht)

(QML) - QML-based Gemini client.
*

Castor (https://git.sr.ht)

(Rust) - graphical Gemini client using GTK.
*

Fafi (https://git.sr.ht)

(Racket) - graphical Gemini browser written in Racket.
*

Fossil (https://github.com)

(Vala) - GTK3 Gemini browser written in Vala for desktop and mobile.
*

Lagrange (https://git.skyjake.fi)

(C) - desktop GUI client with inline image viewing, multiple tabs, bookmarks and more.
*

Moonlander (https://sr.ht)

(Rust) - the fanciest Gemini client in the entire solar system.
*

Kristall (https://github.com)

(C++) - graphical Gopher and Gemini client using QT.
*

spacewar (https://github.com)

(Electron.js) - Gemini browser running on Electron.

# Mobile


*

Ariane (https://oppen.digital)

(Kotlin/Java) - Gemini protocol client for Android based OS.
*

Deedum (https://github.com)

(Dart) - an Android and iOS client made with Flutter.
*

Elaho (https://github.com)

(Swift) - full featured Gemini protocol browser for iOS.
*

Gem (https://open-store.io)

(Python) - Gemini client for Ubuntu Touch.
*

Xenia (https://gitlab.com)

(Java) - Gemini proxy for Android.
*

Phaedra (https://oppen.digital)

(Java) - Gemini client for Android supporting even very old ones; author recommends using Ariana if a current Android is at hand.

# Windows


*

GemiNaut (https://www.marmaladefoo.com)

(C#) - user friendly graphical Gemini client for MS Windows.

Programming


*

gemclient (https://github.com)

(Nim) - rich client library for the Gemini Protocol.
*

derhuerst/gemini (https://github.com)

(Node.js) - server & client lib.
*

a-h/gemini (https://github.com)

(Go) - Applications and libraries for building applications on Gemini.
*

cuipod (https://github.com)

(C#) - Simple yet flexible framework for Gemini protocol server.
*

go-gemini (https://git.sr.ht)

(Go) - library that provides an easy interface to create client and servers.
*

go-gemini (https://github.com)

(Go) - more recent fork of the library above.
*

gig (https://github.com)

(Go) - Gemini framework.
*

ignition (https://github.com)

(Python) - Gemini client transport/request library for python3.
*

Agunua (https://framagit.org)

(Python) - Gemini library to write clients. Includes IRI support, gemtext parsing and CLI tool.
*

kaksik (https://github.com)

(Deno/TypeScript) - middleware library for building server applications.
*

ruby-net-text (https://git.umaneti.net)

(Ruby) - Gemini support in Net::* and URI::* stack.
*

warmuuh/jemini (https://github.com)

(Java) - reactive gemini-client, part of jemini-project
*

Resources


*

Gemini Specification (https://gemini.circumlunar.space)

- the Gemini protocol specification.
*

gemini.circumlunar.space/software (https://portal.mozz.us)

- list of Gemini software.
*

transjovian.org/gemini (https://transjovian.org)

- wiki space dedicated to Gemini communities and software.

Servers


*

Agate (https://github.com)

(Rust) - simple Gemini server for static files.
*

Apogee (https://github.com)

(Kotlin) - Gemini server written in Kotlin for the JVM.
*

a-h/gemini (https://github.com)

(Go) - Server for Linux, Mac, Raspberry Pi. Supports SNI for multiple domains on the same server, has Docker image.
*

blizanci (https://github.com)

(Erlang) - server designed primarily for robustness and security.
*

Denoscuri (https://github.com)

(Typescript) - simple Gemini server written using Deno and Typescript.
*

Dʒɛmɪni (https://sr.ht)

(Racket) - server with features like SNI and CGI.
*

Diamant (https://git.umaneti.net)

(Ruby) - simple Gemini server for static files.
*

Doppio (https://github.com)

(Java) - single-JAR Gemini server with CGI, authentication, and Atom feed support.
*

Duckling proxy 🦆 (https://portal.mozz.us)

(Go) - scheme-specific filtering proxy for Gemini clients to access the web.
*

Earl Server (https://github.com)

(Kotlin) - Gemini fileserver for the JVM.
*

Ergol (http://adele.work)

(PHP) - light Gemini server able to host several capsules with different cerificates.
*

GeGoBi (https://tildegit.org)

(Python) - server to facilitate easy Gemini-Gopher bi-hosting.
*

Gemeaux (https://github.com)

(Python) - server using only the Python standard library.
*

gemini-ipfs-gateway (https://git.sr.ht)

(Go) - an IPFS Gateway that makes IPFS content available over the Gemini protocol.
*

gemini-server (https://hackage.haskell.org)

(Haskell) - lightweight server for the Gemini protocol.
*

geminid (https://github.com)

(C) - Gemini Server in C.
*

geminid (https://www.upyum.com)

(Scheme) - Gemini Server in CHICKEN Scheme.
*

gemini-php (https://opensource.glasgow.social)

(PHP) - simple Gemini server in PHP.
*

JAGS-php (https://github.com)

(PHP) - fork of gemini-php with support of dynamic pages.
*

geminim (https://github.com)

(Nim) - an async lightweight Gemini server made in Nim.
*

gmid (https://github.com)

(C) - simple and secure Gemini server.
*

gmnisrv (https://sr.ht)

(C) - high-performance Gemini server for POSIX systems.
*

Gemserv (https://portal.mozz.us)

(Rust) - server with features like vhosts, CGI, SCGI, reverse-proxying and more.
*

Germinal (https://github.com)

(Common Lisp) - serves any type of document with an appropriate mime type.
*

GLV-1.12556 (https://github.com)

(Lua) - the first Gemini protocol server with a lot of features.
*

Hydepark (https://github.com)

(Rust) - discussion forum application for Gemini.
*

Jetforce (https://github.com)

(Python) - built-in static file server with support for gemini directories and CGI scripts.
*

warmuuh/jemini (https://github.com)

(Java) - dual gemini/http server on top of jetty with spring-boot integration
*

Lupa Pona (https://github.com)

(Perl) - simple single directory Gemini server.
*

Marami (https://github.com)

(Prolog) - server written in Prolog.
*

Molly Brown (https://tildegit.org)

(Go) - full-featured Gemini server implemented in Go.
*

net-gemini (https://github.com)

(Go) - gemini server inspired by Molly Brown.
*

northstar (https://github.com)

(Rust) - gemini server implementation.
*

Orbit (https://tildegit.org)

(PHP) - Gemini server implemented in PHP.
*

Phoebe (https://alexschroeder.ch)

(Perl) - Gemini/web wiki.
*

pollux (https://git.sr.ht)

(Rust) - simple server that will only serve one `index.gemini` file.
*

rc-gemd (https://sr.ht)

(Shell) - simple Gemini server written in rc (for plan9 operating systems).
*

Satellite (https://sr.ht)

(Go) - small Gemini server for serving static files.
*

Shavit (https://git.sr.ht)

(Go) - configurable Gemini server for UNIX operating systems.
*

Space-Age (https://gitlab.com)

(Clojure) - Gemini server written in Clojure.
*

Taurus (https://git.sr.ht)

(Rust) - A Concurrent Gemini Server.
*

Titan (https://github.com)

(Rust) - simple TOML-configured Gemini server and an Express-like Gemini server framework.
*

twins (https://gitlab.com)

(Go) - YAML-configured Gemini server supporting vhosts, FastCGI and reverse-proxying.
*

vger (https://tildegit.org)

(C) - Gemini server written in C used with inetd.

Services


  • **gemini://drewdevault.com/cgi-bin/man.sh** - look up a POSIX man page.
  • **gemini://flounder.online** (
https version (https://flounder.online)

) - host small Gemini web pages over https and Gemini (

repo (https://github.com)

).

  • **gemini://geminispace.info** - public search provider for Gemini (
repo (https://src.clttr.info)

).

  • **gemini://geddit.glv.one** - interactive link service (with comments).
  • **gemini://glv.one** - free platform as a service (PaaS) that runs any Gemini server (packaged as a Docker image) in the cloud.
  • **gemini://gus.guru/** - Gemini Universal Search (
repo (https://natpen.net)

).

  • **gemini://gemini.omarpolo.com/cgi/gempkg/** - interface for the OpenBSD ports collection.
  • **gemini://tictactoe.lanterne.chilliet.eu** - Tic Tac Toe game (
repo (https://framagit.org)

).

  • **gemini://ur.gs/** - translate from en->es and es->en (
repo (https://code.ur.gs)

).

  • **gemini://rawtext.club/~sloum/geminews/** - Daily news feeds proxied to gemini.
  • **gemini://rawtext.club/~sloum/cgi/othello/** - Play othello/reversi against a computer opponent over gemini.
  • **gemini://rawtext.club/~sloum/cgi/weather** - US weather reports by zip code.

*

gemlog.blue (https://gemlog.blue)

- Gemini hosting from a web frontend.

Tools


*

CAPCOM (https://tildegit.org)

(Python) - Atom feed aggregator for gemini.
*

certified (https://code.lag.net)

(Python) - Generate TOFU TLS certificates for gemini servers.
*

cl-yag (git://bitreich.org)

(Common-Lisp) - Static site generator producing gemini, gopher and html.
*

comitium (https://git.nytpu.com)

(C) - A feed aggregator for gemini supporting many formats and protocols.
*

gemini-pandoc-lua-filter (https://github.com)

(Lua) - lua filter for pandoc to output Gemini text.
*

gemini-to-html (https://github.com)

(Node.js) - JavaScript library for parsing Gemini pages, and for rendering them to HTML.
*

geminize (https://addons.mozilla.org)

- Firefox addon that redirects gemini:// URLs and links to a customizable HTTP-to-Gemini proxy.
*

gemlog.sh (https://git.nytpu.com)

(Bash) - Utility for writing and managing gemini logs (gemlogs) and atom feeds (simple gemini static site generator/framework).
*

gem.git (https://git.sr.ht)

(Python) - git frontend CGI script.
*

gemini_http (https://github.com)

(Go) - simple tool for viewing gemini files that are placed on a http server.
*

gemmit (https://github.com)

(Go) - social news aggregation and web content rating website for the gemini protocol.
*

gemtexter (https://github.com)

(Bash) - Site generator and blog engine for Gemini. Generates Atom and Gemfeeds , and also does Gemtext to HTML and Markdown conversion.
*

gloggery (https://github.com)

(Go) - basic static site generator for blogs in Gemini.
*

gmitohtml (https://gitlab.com)

(Go) - proxy that renders Gemini pages using HTML.
*

gmi2html (https://github.com)

(Zig) - tiny gemtext to HTML converter with a focus on performance.
*

gmi2html (gemini.thegonz.net)

(Sed) - sed script to convert text/gemini to html.
*

gmi-web (https://codeberg.org)

(JS) - generate *semantic* HTML styled for readability and mobile-friendliness.
*

gmnhg (https://git.tdem.in)

(Go) - renders a Hugo site to a Gemini site.
*

gssg (https://git.sr.ht)

(Go) - simple gemini static site generator. Generates pages, index and atom feeds.
*

Html2GeminiPy (https://github.com)

(Python) - Converts Html sites to Gemini sites using markdownify and md2gemini.
*

kiln (https://git.sr.ht)

(Go) - simple static site generator for Gemini sites.
*

Lupa (https://framagit.org)

- crawler to explore the geminispace and make statistics (you can see them at __gemini://gemini.bortzmeyer.org/software/lupa/stats.gmi ).
*

Manisha (https://framagit.org)

- Nagios (and compatible, such as Icinga) plugin to monitor Gemini servers.
*

md2gmn (https://git.tdem.in)

(Go) - renders Markdown text to Gemini pages.
*

md2gemini (https://github.com)

(Python) - converter from Markdown to the Gemini text format.
*

spacewalk (https://tildegit.org)

(Go) - Page-hash based feed aggregator for gemini.
*

MastoGem (https://git.rdelaage.ovh)

(Go) - Mastodon proxy for Gemini.
*

Hugo-2-Gopher-and-Gemini (https://github.com)

(Python) - A Hugo theme to convert a Hugo site to Gemini or Gopher.
*

Gopher-and-Gemini-Walker (https://github.com)

(Python) - Terminal client (without network connectivity) to navigate a folder structure containing a Gemini capsule or Gopher hole.

Syntax Highlighting


*

gemini-vim-syntax (https://tildegit.org)

- text/gemini syntax highlighting for vim.
*

gemini.el (https://git.carcosa.net)

- text/gemini syntax highlighting for emacs.
*

gemini.kak (https://github.com)

- text/gemini syntax highlighting for kakoune.
*

gemini.nanorc (https://github.com)

- text/gemini syntax highlighting for nano.
*

gemini.sublime-syntax (https://github.com)

- text/gemini syntax highlighting for bat (and maybe Sublime Text).
*

gemini.yml (https://github.com)

- text/gemini syntax highlighting for micro.

Web proxies


*

Mozz.us portal (https://portal.mozz.us)

*

Soweli Lukin (https://alexschroeder.ch)

*

Vulpes proxy (https://proxy.vulpes.one)


Bots


*

Fortune Teller Bot (https://github.com)

- Generates a fortune gmi file, gemlog/index.gmi, and atom.xml every time the bot is executed

--------------------------------------------------------------------------------

Response: 20 (Success), text/gemini
Original URLgemini://tilde.team/~bqb/awesome-gemini.gmi
Status Code20 (Success)
Content-Typetext/gemini; charset=utf-8; lang=en