Compare commits

..

No commits in common. "3f2b0b5fd2b4d5209f41944f6b7c590036e403e1" and "5296587c39ea21f3436622e7dc5a81bf4d3ee9b3" have entirely different histories.

4 changed files with 9 additions and 18 deletions

2
Cargo.lock generated
View file

@ -886,7 +886,7 @@ dependencies = [
[[package]]
name = "tokio-gemini"
version = "0.5.1"
version = "0.5.0"
dependencies = [
"async-trait",
"base16ct",

View file

@ -1,6 +1,6 @@
[package]
name = "tokio-gemini"
version = "0.5.1"
version = "0.5.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://unw.dc09.ru"
@ -14,18 +14,18 @@ base16ct = "0.2.0"
base64ct = "1.6.0"
sha2 = "0.10.8"
async-trait = "0.1.81"
num_enum = "0.7.3"
bytes = "1.7.1"
mime = "0.3.17"
url = "2.5.2"
tokio = { version = "1.39.2", default-features = false, features = ["io-util", "net"] }
tokio = { version = "1.39.2", features = ["io-util", "net"] }
tokio-rustls = { version = "0.26.0", default-features = false, features = ["ring"] }
rustls-webpki = "0.102.7"
dashmap = { version = "6.0.1", optional = true }
hickory-client = { version = "0.24.1", optional = true }
async-trait = "0.1.81"
rustls-webpki = "0.102.7"
[dev-dependencies]
tokio = { version = "1.39.2", features = ["macros", "rt-multi-thread"] }
@ -47,4 +47,4 @@ path = "examples/simple.rs"
[[example]]
name = "main"
path = "examples/main.rs"
required-features = ["file-sscv", "dane"]
required-features = ["file-sscv", "hickory"]

View file

@ -4,10 +4,10 @@ Gemini protocol client and server implementation written in Rust with Tokio.
// Work in progress
## TODO
- [x] Write tests for Client
- [ ] Write tests for Client
- [x] Check self-signed cert with DANE before trusting it
- [x] Clean up `FileBasedCertVerifier` code
- [ ] Add `SqliteBasedCertVerifier` (?)
- [x] Implement automatic redirection following
- [ ] Implement automatic redirection following
- [ ] Implement client authorization
- [ ] Implement server

View file

@ -1,14 +1,5 @@
//! 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.
//! You probably need [`Client::builder()`]
pub mod certs;
pub mod client;