An ergonomic and elegant framework for creating Gemini servers and SCGI apps without needless bloat
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
2.1 KiB

[package]
name = "kochab"
version = "0.1.0-unreleased"
description = "Ergonomic Gemini SDK"
authors = ["Emii Tatsuo <emi@alchemi.dev>", "panicbit <panicbit.dev@gmail.com>"]
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"]