network-protocol 1.0.1

Secure, high-performance protocol core with backpressure control, structured logging, timeout handling, TLS support, and comprehensive benchmarking for robust Rust networked applications and services.
Documentation
[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]
# Security and correctness (high priority)
suspicious = { level = "deny", priority = 0 }
correctness = { level = "deny", priority = 0 }

# Important safety lints
unwrap_used = { level = "warn", priority = 1 }
expect_used = { level = "warn", priority = 1 }
panic = { level = "warn", priority = 1 }

# Code quality (warning level)
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"

# Cryptographic dependencies
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"

# Configuration
toml = "0.8"

# TLS dependencies
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