[package] name = "tidal-server" version = "0.1.0" edition.workspace = true rust-version.workspace = true license.workspace = true [lib] name = "tidal_server" path = "src/lib.rs" # ── tidal-crate lint posture (single source of truth) ────────────────────── # IDENTICAL block across tidaldb / tidal-net / tidal-server / tidalctl. These # crates deliberately DO NOT inherit `[workspace.lints]`; they hold the embedded # recommendation DB + its transport/server/CLI to a stricter correctness bar # (`unsafe_code = forbid`, `clippy::all = deny`, `unwrap_used = deny`). # `unwrap_used = "deny"` is kept per-crate rather than in `[workspace.lints]` # because the workspace also hosts the example/consumer crates under # `applications/` (not held to the engine's bar). Keep these four blocks BYTE-IDENTICAL. [lints.rust] unsafe_code = "forbid" [lints.clippy] all = { level = "deny", priority = -1 } pedantic = { level = "warn", priority = -1 } nursery = { level = "warn", priority = -1 } # Justified allows (lossy numeric casts are pervasive + intentional in the # ranking/scoring math; module_name_repetitions is idiomatic for the flat # module layout documented in CLAUDE.md): cast_possible_truncation = "allow" module_name_repetitions = "allow" unwrap_used = "deny" [dependencies] axum = "0.8" clap = { version = "4.5", features = ["derive", "env"] } subtle = "2" tower = { version = "0.5", features = ["limit"] } tower-http = { version = "0.6", features = ["timeout", "trace", "request-id"] } serde = { version = "1", features = ["derive"] } serde_json = "1" # serde_yml is the maintained fork of the deprecated/unmaintained serde_yaml # 0.9 (RUSTSEC-2024-0320). It keeps the same `Value`/`Mapping` API, so the # schema/topology/profile parsing below is byte-for-byte behaviour-identical. serde_yml = "0.0.12" thiserror = "2" tokio = { version = "1", features = ["macros", "rt-multi-thread", "signal", "sync"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tidaldb = { path = "../tidal", features = ["test-utils"] } tidal-net = { path = "../tidal-net" } [features] cluster-e2e = [] [dev-dependencies] tempfile = "3" reqwest = { version = "0.12", features = ["json", "blocking"] } serde_json = "1"