#client-server #gemini #protocols #dns-client #tokio #dane #parser

tokio-gemini

Gemini protocol client and server implementation written in Rust with Tokio

7 releases (4 breaking)

0.5.2 Aug 30, 2024
0.5.1 Aug 29, 2024
0.4.0 Aug 6, 2024
0.3.0 Aug 6, 2024
0.1.0 Aug 1, 2024

#2030 in Network programming

Apache-2.0

54KB
1K SLoC

tokio-gemini

Gemini protocol client and server implementation written in Rust with Tokio.
// Work in progress

TODO

  • Write tests for Client
  • Check self-signed cert with DANE before trusting it
  • Clean up FileBasedCertVerifier code
  • Add SqliteBasedCertVerifier (?)
  • Implement automatic redirection following
  • Implement client authorization
  • Implement server

lib.rs:

Gemini client and server implementaion in async Rust with Tokio and Rustls. You probably need [Client::builder()].

Features

  • file-sscv: known_hosts file parser and helper functions for verifying a self-signed certificate.
  • dane: alias to hickory.
  • hickory: custom DNS client, also required for a DANE-based verification.
  • hickory-dot: enables DNS-over-TLS.
  • hickory-doh: enables DNS-over-HTTPS.

Dependencies

~12–23MB
~419K SLoC