[package]
name = "nautalid"
version = "0.1.0"
edition = "2024"
rust-version = "1.88"
authors = ["TheMapleseed"]
description = "Scratch container substrate — TLS 1.3 HTTP/2+3 kernel, LID/AetherDB, optional filter bus (GPL-3.0-or-later)."
license = "GPL-3.0-or-later"
readme = "README.md"
include = [
"src/**/*",
"Cargo.toml",
"Cargo.lock",
"README.md",
"LICENSE",
"rust-toolchain.toml",
]
repository = "https://github.com/TheMapleseed/Nautalid"
documentation = "https://docs.rs/nautalid"
keywords = ["scratch", "container", "rustls", "axum", "aetherdb"]
categories = ["web-programming::http-server"]
[dependencies]
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
webpki-roots = "0.26"
bytes = "1"
http = "1"
hyper = { version = "1", default-features = false, features = ["http2", "server"] }
http-body-util = "0.1"
hyper-util = { version = "0.1", default-features = false, features = [
"tokio",
"server-auto",
"service",
] }
h3 = { version = "0.0.8", features = [
"i-implement-a-third-party-backend-and-opt-into-breaking-changes",
] }
h3-quinn = { version = "0.0.10", features = ["datagram"] }
h3-axum = "0.2"
quinn = { version = "0.11", default-features = false, features = ["runtime-tokio", "rustls-ring"] }
tokio = { version = "1", features = [
"macros",
"rt-multi-thread",
"signal",
"net",
"time",
"fs",
"io-util",
] }
axum = { version = "0.8", features = ["ws"] }
tower = { version = "0.5", features = ["util"] }
tower-http = { version = "0.6", features = ["trace", "limit", "timeout", "fs"] }
futures-util = { version = "0.3", default-features = false, features = ["sink"] }
futures-channel = { version = "0.3", features = ["sink"] }
futures-io = "0.3"
futures-task = "0.3"
async-trait = "0.1"
parking_lot = "0.12"
rand = "0.8"
dashmap = "5"
crossbeam-queue = "0.3"
asynchronous-codec = "0.7"
regex = { version = "1", default-features = false, features = ["std", "unicode-perl"] }
once_cell = "1"
log = "0.4"
num-traits = "0.2"
tokio-util = { version = "0.7", features = ["compat"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "registry"] }
reqwest = { version = "0.12", default-features = false, features = [
"rustls-tls-webpki-roots",
"http2",
"stream",
"json",
] }
tokio-tungstenite = { version = "0.26", default-features = false, features = ["connect", "rustls-tls-webpki-roots"] }
ocsp-staple = { version = "0.0.2", features = ["fetch"] }
tonic = { version = "0.12", optional = true, default-features = false, features = ["transport"] }
tonic-health = { version = "0.12", optional = true }
hickory-resolver = { version = "0.26.1", features = ["tokio", "system-config"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
chrono-tz = "0.10"
time = "0.3.47"
p256 = { version = "0.13", optional = true, features = ["ecdsa", "pem", "std", "pkcs8"] }
sha2 = { version = "0.10" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
hex = "0.4"
base64 = "0.22"
thiserror = "2"
kwt = { version = "0.2.1", optional = true }
uuid = { version = "1", optional = true, features = ["v4", "v7"] }
clap = { version = "4", features = ["derive"], optional = true }
rand_core = { version = "0.6", features = ["getrandom"], optional = true }
rayon = { version = "1", optional = true }
kdl = "6"
rustls-acme = { version = "0.15", default-features = false, features = ["ring", "tokio", "webpki-roots"] }
aws-lc-rs = { version = "1", optional = true }
aetherdb = { version = "0.1.1", optional = true }
tempfile = { version = "3", optional = true }
tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] }
rustls-pemfile = "2"
h3-webtransport = "0.1.2"
h3-datagram = "0.0.2"
[features]
default = ["filter", "kwt", "image-trust"]
filter = []
bus = ["dep:uuid", "tokio-runtime", "all-transport"]
tokio-runtime = []
all-transport = ["ipc-transport", "tcp-transport"]
ipc-transport = []
tcp-transport = []
async-std-runtime = []
async-dispatcher-runtime = []
async-dispatcher-macros = []
daht-vpn = []
filter-control = ["filter", "bus"]
tls-aws-lc = ["dep:aws-lc-rs", "rustls/aws-lc-rs", "tokio-rustls/aws-lc-rs", "quinn/rustls-aws-lc-rs"]
compute = ["dep:rayon"]
grpc-surface = ["dep:tonic", "dep:tonic-health"]
kwt = ["dep:kwt", "dep:uuid", "dep:aetherdb", "dep:tempfile"]
image-trust = ["dep:p256"]
nautalid-tool = ["dep:clap", "dep:rand_core", "image-trust"]
[dev-dependencies]
rand_core = { version = "0.6", features = ["getrandom"] }
tempfile = "3"
tower = { version = "0.5", features = ["util"] }
rcgen = { version = "0.14", default-features = false, features = ["crypto", "pem", "ring"] }
rustls-pemfile = "2"
futures-util = { version = "0.3", default-features = false }
[package.metadata.docs.rs]
all-features = true
features = ["filter-control"]
[patch.crates-io]
h3 = { path = "vendor/h3" }
[[bin]]
name = "nautalid"
path = "src/main.rs"
[[bin]]
name = "nautalid-tool"
path = "src/bin/nautalid_tool.rs"
required-features = ["nautalid-tool", "image-trust"]
[[bin]]
name = "aetherdb-hub"
path = "src/bin/aetherdb_hub.rs"
required-features = ["kwt"]
[[bin]]
name = "aetherdb-node"
path = "src/bin/aetherdb_node.rs"
required-features = ["kwt"]
[[test]]
name = "bus_ipc"
path = "tests/bus_ipc.rs"
required-features = ["filter-control"]
[[test]]
name = "server_lifecycle"
path = "tests/server_lifecycle.rs"
required-features = ["filter-control"]
[[test]]
name = "aetherdb_shared_replay"
path = "tests/aetherdb_shared_replay.rs"
required-features = ["kwt"]
[[test]]
name = "aetherdb_mtls_replay"
path = "tests/aetherdb_mtls_replay.rs"
required-features = ["kwt"]
[[test]]
name = "inbound_mtls"
path = "tests/inbound_mtls.rs"
[[test]]
name = "h3_transport"
path = "tests/h3_transport.rs"
[[test]]
name = "wt_aether_transport"
path = "tests/wt_aether_transport.rs"
required-features = ["kwt", "filter"]
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
strip = true
panic = "abort"