[package]
name = "network-protocol"
version = "1.0.1"
edition = "2021"
readme = "README.md"
license = "Apache-2.0"
authors = [
"James Gober <code@jamesgober.dev>"
]
description = "Secure, high-performance protocol core with backpressure control, structured logging, timeout handling, TLS support, and comprehensive benchmarking for robust Rust networked applications and services."
keywords = [
"network",
"protocol",
"secure",
"backpressure",
"performance"
]
categories = [
"network-programming",
"asynchronous",
"cryptography",
"authentication",
"concurrency"
]
documentation = "https://docs.rs/network-protocol"
repository = "https://github.com/jamesgober/network-protocol"
homepage = "https://github.com/jamesgober/network-protocol"
[lints.clippy]
suspicious = { level = "deny", priority = 0 }
correctness = { level = "deny", priority = 0 }
unwrap_used = { level = "warn", priority = 1 }
expect_used = { level = "warn", priority = 1 }
panic = { level = "warn", priority = 1 }
complexity = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
[dependencies]
thiserror = "1.0"
serde = { version = "1.0", features = ["derive"] }
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["codec"] }
tokio = { version = "1.38", features = ["net", "io-util", "macros", "rt-multi-thread", "fs", "signal"] }
futures = "0.3"
chacha20poly1305 = { version = "0.10", features = ["std"] }
tracing = { version = "0.1", features = ["attributes"] }
tracing-subscriber = { version = "0.3.20", features = ["env-filter", "fmt", "json"] }
tracing-appender = "0.2"
tracing-futures = "0.2"
getrandom = "0.3.3"
rand = "0.9"
x25519-dalek = { version = "2.0", features = ["serde"] }
sha2 = "0.10"
once_cell = "1.8"
rand_core = "0.6"
rand_chacha = "0.3"
zeroize = { version = "1.7", features = ["serde", "zeroize_derive"] }
bincode = "1.3"
bytes = "1.5"
lz4_flex = "0.11.5"
zstd = "0.13"
toml = "0.8"
rustls = { version = "0.21", features = ["dangerous_configuration"] }
tokio-rustls = "0.24"
rcgen = { version = "0.14.5", features = ["pem"] }
rustls-pemfile = "1.0"
rustls-native-certs = "0.6"
[dev-dependencies]
serial_test = "2.0"
criterion = "0.5"
[[bench]]
name = "packet_bench"
harness = false
[[bench]]
name = "compression_bench"
harness = false
[[bench]]
name = "message_bench"
harness = false
[profile.release]
lto = true
codegen-units = 1
opt-level = 3
debug = false
strip = "symbols"
[profile.bench]
lto = true
codegen-units = 1
opt-level = 3
debug = true