[package] name = "kochab" version = "0.1.0-unreleased" description = "Ergonomic Gemini SDK" authors = ["Emii Tatsuo ", "panicbit "] license = "Hippocratic-2.1" keywords = ["gemini", "server", "smallnet"] categories = ["asynchronous", "network-programming"] edition = "2018" repository = "https://gitlab.com/Alch_Emi/kochab" readme = "README.md" include = ["src/**", "Cargo.*", "CHANGELOG.md", "LICENSE*", "README.md"] [features] default = ["certgen"] user_management = ["sled", "bincode", "serde/derive", "crc32fast", "lazy_static"] user_management_advanced = ["rust-argon2", "user_management"] user_management_routes = ["user_management"] serve_dir = ["mime_guess", "tokio/fs"] ratelimiting = ["dashmap"] certgen = ["rcgen", "gemini_srv"] gemini_srv = ["tokio-rustls", "webpki", "rustls", "ring"] scgi_srv = ["base64"] [dependencies] anyhow = "1.0.33" tokio = { version = "0.3.1", features = ["io-util","net","time", "rt"] } uriparse = "0.6.3" percent-encoding = "2.1.0" log = "0.4.11" ring = { version = "0.16.15", optional = true } base64 = { version = "0.13.0", optional = true } lazy_static = { version = "1.4.0", optional = true } rustls = { version = "0.19", features = ["dangerous_configuration"], optional = true} webpki = { version = "0.21.0", optional = true} tokio-rustls = { version = "0.21.0", optional = true} mime_guess = { version = "2.0.3", optional = true } dashmap = { version = "3.11.10", optional = true } sled = { version = "0.34.6", optional = true } bincode = { version = "1.3.1", optional = true } serde = { version = "1.0", optional = true } rust-argon2 = { version = "0.8.2", optional = true } crc32fast = { version = "1.2.1", optional = true } rcgen = { version = "0.8.5", optional = true } [dev-dependencies] env_logger = "0.8.1" tokio = { version = "0.3.1", features = ["macros", "rt-multi-thread", "sync"] } [[example]] name = "user_management" required-features = ["user_management_routes"] [[example]] name = "serve_dir" required-features = ["serve_dir"] [[example]] name = "ratelimiting" required-features = ["ratelimiting"]