[package]
name = "s2-lite"
version = "0.29.26"
description = "Lightweight server implementation of S2, the durable streams API, backed by object storage"
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
keywords = ["s2", "durable", "streams", "object", "storage"]
categories = ["database-implementations"]

[[bin]]
name = "openapi"
required-features = ["utoipa"]

[[bin]]
name = "server"

[features]
utoipa = ["dep:utoipa", "s2-api/utoipa", "s2-common/utoipa"]

[dependencies]
async-stream = { workspace = true }
async-trait = { workspace = true }
aws-config = { workspace = true }
aws-credential-types = { workspace = true }
axum = { workspace = true, features = ["macros"] }
axum-server = { workspace = true, features = ["tls-rustls"] }
blake3 = { workspace = true }
bytes = { workspace = true }
bytesize = { workspace = true }
clap = { workspace = true, features = ["derive", "env"] }
compact_str = { workspace = true }
dashmap = { workspace = true }
enum-ordinalize = { workspace = true }
eyre = { workspace = true }
futures = { workspace = true }
http = { workspace = true }
humantime = { workspace = true }
indexmap = { workspace = true }
itertools = { workspace = true }
mimalloc = { workspace = true }
parking_lot = { workspace = true, features = ["arc_lock"] }
prometheus = { workspace = true, features = ["process"] }
prost = { workspace = true }
rand = { workspace = true }
rcgen = { workspace = true }
rustls = { workspace = true, features = ["aws-lc-rs"] }
s2-api = { workspace = true, features = ["axum"] }
s2-common = { workspace = true, features = ["clap"] }
schemars = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
slatedb = { workspace = true }
thiserror = { workspace = true }
time = { workspace = true, features = ["serde", "formatting", "parsing"] }
tokio = { workspace = true, features = ["sync"] }
tokio-util = { workspace = true }
tower-http = { workspace = true, features = ["cors", "trace", "compression-zstd", "compression-gzip", "decompression-zstd", "decompression-gzip"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
utoipa = { version = "5.4", optional = true, features = ["time"] }

[dev-dependencies]
proptest = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt", "test-util", "time"] }
uuid = { workspace = true, features = ["v4"] }
