Skip to content
/ germ Public

🦠 The Definitive Gemini Protocol Toolkit

License

Notifications You must be signed in to change notification settings

gemrest/germ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.