- Add BUILD.bazel across tidal, tidal-net, tidal-server, tidalctl for bzlmod build - Add tidal/ crate docs (README, CHANGELOG, CONTRIBUTING, AGENTS, CLAUDE, API, ARCHITECTURE) and ai-lookup reference - Add docker standalone/cluster/deploy images, compose, and prometheus config - Harden WAL (batch format, writer, dedup, diagnostics), text syncer/collectors, and vector registry - Expand tidalctl CLI and tests; restructure WAL/visibility integration test suites - Refine tidal-net transport/client/server and tidal-server cluster/scatter-gather
61 lines
2.4 KiB
TOML
61 lines
2.4 KiB
TOML
[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"
|
|
rustls-pemfile = "2"
|
|
# 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
|