27 releases

0.4.5 Aug 3, 2024
0.4.4 Jun 29, 2024
0.4.0 Mar 24, 2024
0.3.10 Jun 20, 2023
0.3.7 Jul 24, 2022

#219 in Encoding


Used in 4 crates

GPL-3.0-only

51KB
741 lines

Germ

crates.io docs.rs github.com

The Ultimate Gemini Toolkit

Germ is a toolkit for the Gemini protocol which aims to have a little something for everyone. At the moment, Germ has ZERO dependencies (unless you use the request feature), and Germ will continue to try its hardest to have as few dependencies as possible.

Features

  • AST builder to easily construct and manipulate AST trees from raw Gemtext
  • Converters to easily convert from Gemtext to markup formats such as HTML or Markdown
  • Blocking and non-blocking request suite
  • Structured meta section manipulation
  • And more!

Check out the rest of the features in the Features section under Usage

Usage

Current version: crates.io

# Cargo.toml

[dependencies]
# To enable only the base (default) features: ast, convert, meta, request
# germ = "*" # Use current version show above!

# To enable only certain features
[dependencies.germ]
version = "*" # Use current version show above!
default-features = false
features = ["ast"] # Enable the features you would like to use!

Features

Feature Description
default ast, convert, meta, request
ast Construct AST trees from raw Gemtext
blocking Blocking equivalent of request
convert Convert Gemtext to markup formats such as HTML or Markdown
request Make Gemini requests, get sane, structured results
meta Structure-ise a Gemini response's meta section
macros Macros to aid with various Germ-related functionalities
quick Tiny functions to create valid Gemtext elements from structured input

Examples

Thoroughly commented examples can be found within the examples/ directory.

License

This project is licensed with the GNU General Public License v3.0.

Dependencies

~0–9.5MB
~106K SLoC