gemi
A lightweight async Gemini protocol server framework built on Tokio and Rustls.
- Async handler functions with automatic argument extraction
- URL parameter routing with wildcards and sub-routers
- Shared application state via extractors
- TLS client certificate authentication
- Composable middleware (closures and traits)
- Built-in request tracing
- Static file serving with directory listings
- Gemtext document builder
- Graceful shutdown support
Quick Start
use ;
async
async
TLS Certificates
Gemini requires TLS. Generate a self-signed certificate for development:
PKCS#1 (RSA), PKCS#8, and SEC1 (EC) key formats are all supported.
Examples
The examples/ directory covers routing, shared state, input prompts,
middleware, static file serving, client certificate auth, graceful shutdown,
and tracing. Run any of them with:
License
MIT