Files
rutster/crates/rutster/Cargo.toml
2026-07-06 04:06:20 +00:00

48 lines
1.8 KiB
TOML

# crates/rutster/Cargo.toml
[package]
name = "rutster"
version = "0.0.0"
license.workspace = true
edition.workspace = true
repository.workspace = true
description = "Rutster binary: axum signaling + media driver + static browser test client (slice 1)."
[dependencies]
rutster-media = { path = "../rutster-media" }
rutster-call-model = { path = "../rutster-call-model" }
rutster-tap = { path = "../rutster-tap" }
# rutster-trunk: the rented-transport crate owns `TwilioCredentials` (T2) +
# the env parser's return type. The binary's `config::twilio_credentials`
# (T6) constructs it from env vars + hands it to the live
# `TwilioCallControlClient` (when `--features=twilio-live` is enabled on the
# trunk crate). ADR-0009: `TwilioCredentials` is imported here but never
# re-exported through the workspace root / never sent over the tap WS protocol.
rutster-trunk = { path = "../rutster-trunk" }
axum = { workspace = true }
tokio = { workspace = true }
tokio-tungstenite = { workspace = true }
futures-util = { workspace = true }
url = { workspace = true }
dashmap = { workspace = true }
uuid = { workspace = true }
async-trait = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
ipnet = { workspace = true }
[dev-dependencies]
tower = { workspace = true }
rutster-tap-echo = { path = "../rutster-tap-echo" }
# slice-3 §7.4: integration test spins up the in-process MockRealtimeBrain
# + drives the brain's `run_openai_pump` directly (replicating the brain
# process's accept loop in the test, no subprocess). The `mock` feature
# brings in MockRealtimeBrain without requiring OPENAI_API_KEY.
rutster-brain-realtime = { path = "../rutster-brain-realtime", features = ["mock"] }
[[bin]]
name = "rutster"
path = "src/main.rs"