[package]
edition = "2024"
rust-version = "1.89"
name = "durable-streams-server"
version = "0.2.0"
build = false
exclude = [
"CLAUDE.md",
"**/CLAUDE.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Durable Streams protocol server in Rust, built with axum and tokio"
homepage = "https://github.com/thesampaton/durable-streams-rust"
readme = "README.md"
keywords = [
"streaming",
"event-sourcing",
"durable-streams",
"sse",
"long-polling",
]
categories = [
"web-programming::http-server",
"network-programming",
]
license = "MIT"
repository = "https://github.com/thesampaton/durable-streams-rust"
[lib]
name = "durable_streams_server"
path = "src/lib.rs"
[[bin]]
name = "durable-streams-server"
path = "src/main.rs"
[[test]]
name = "acid_crash_recovery"
path = "tests/acid_crash_recovery.rs"
[[test]]
name = "acid_mode_smoke"
path = "tests/acid_mode_smoke.rs"
[[test]]
name = "append_operations"
path = "tests/append_operations.rs"
[[test]]
name = "caching_etag"
path = "tests/caching_etag.rs"
[[test]]
name = "concurrent_stress"
path = "tests/concurrent_stress.rs"
[[test]]
name = "crash_recovery"
path = "tests/crash_recovery.rs"
[[test]]
name = "custom_mount_path"
path = "tests/custom_mount_path.rs"
[[test]]
name = "health_check"
path = "tests/health_check.rs"
[[test]]
name = "http_backend_parity_subset"
path = "tests/http_backend_parity_subset.rs"
[[test]]
name = "json_mode"
path = "tests/json_mode.rs"
[[test]]
name = "long_poll"
path = "tests/long_poll.rs"
[[test]]
name = "nested_stream_names"
path = "tests/nested_stream_names.rs"
[[test]]
name = "producer_sequencing"
path = "tests/producer_sequencing.rs"
[[test]]
name = "proptest_storage"
path = "tests/proptest_storage.rs"
[[test]]
name = "read_operations"
path = "tests/read_operations.rs"
[[test]]
name = "resource_cleanup"
path = "tests/resource_cleanup.rs"
[[test]]
name = "security_headers"
path = "tests/security_headers.rs"
[[test]]
name = "shutdown"
path = "tests/shutdown.rs"
[[test]]
name = "sse"
path = "tests/sse.rs"
[[test]]
name = "startup_resilience"
path = "tests/startup_resilience.rs"
[[test]]
name = "storage_backend_contract"
path = "tests/storage_backend_contract.rs"
[[test]]
name = "storage_error_responses"
path = "tests/storage_error_responses.rs"
[[test]]
name = "stream_closure"
path = "tests/stream_closure.rs"
[[test]]
name = "stream_creation"
path = "tests/stream_creation.rs"
[[test]]
name = "tls_transport"
path = "tests/tls_transport.rs"
[[test]]
name = "ttl_expiry"
path = "tests/ttl_expiry.rs"
[dependencies.async-stream]
version = "0.3.6"
[dependencies.axum]
version = "0.8.8"
features = ["macros"]
[dependencies.axum-server]
version = "0.8.0"
features = ["tls-rustls"]
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.11"
[dependencies.chrono]
version = "0.4.44"
features = ["serde"]
[dependencies.figment]
version = "0.10.19"
features = ["toml"]
[dependencies.futures-util]
version = "0.3.32"
[dependencies.redb]
version = "4"
[dependencies.seahash]
version = "4.1.0"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.50"
features = ["full"]
[dependencies.tokio-util]
version = "0.7"
[dependencies.tower-http]
version = "0.6.8"
features = ["cors"]
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-subscriber]
version = "0.3.23"
features = ["env-filter"]
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.reqwest]
version = "0.13.2"
features = ["stream"]
[dev-dependencies.rustls]
version = "0.23"
[dev-dependencies.rustls-pemfile]
version = "2.2"
[dev-dependencies.tokio-rustls]
version = "0.26"
[lints.clippy.pedantic]
level = "warn"
priority = -1