[package] name = "tidal-net" version = "0.1.0" edition.workspace = true rust-version.workspace = true license.workspace = true description = "gRPC network transport for tidalDB WAL segment shipping" # ── 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`). A network # transport crate especially must gate unsafe + unwrap. # `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] tidaldb = { path = "../tidal" } tonic = { version = "0.12", features = ["tls", "tls-roots"] } prost = "0.13" tokio = { version = "1", features = ["rt-multi-thread", "sync", "time"] } tokio-stream = "0.1" # Direct rustls dep with an explicit crypto provider. tonic pulls rustls only # transitively (no provider feature in tidal-net's own closure), so the # process-level default CryptoProvider is otherwise absent/ambiguous and the # mTLS path panics ("Could not automatically determine the process-level # CryptoProvider"). `transport::ensure_crypto_provider` installs this aws-lc-rs # provider idempotently at GrpcTransport construction. See BUILD.bazel. rustls = { version = "0.23", features = ["aws_lc_rs"] } tracing = "0.1" thiserror = "2" [build-dependencies] tonic-build = "0.12" [dev-dependencies] criterion = { version = "0.5", features = ["html_reports"] } rcgen = "0.13" tempfile = "3" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } [[bench]] name = "transport_throughput" harness = false