[package] name = "audio-agent-engine" version = "0.1.0" edition = "2021" description = "Real-time full-duplex audio agent engine (WebSocket + SGLang Drama 3 + Parakeet STT)" [[bin]] name = "audio-agent-engine" path = "src/main.rs" [dependencies] axum = { version = "0.7", features = ["ws"] } tokio = { version = "1.38", features = ["full"] } futures-util = "0.3" reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" parking_lot = "0.12" tokio-util = { version = "0.7", features = ["rt"] } ort = { version = "2.0.0-rc.4" } ndarray = "0.17" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } bytes = "1" anyhow = "1" async-trait = "0.1" dotenvy = "0.15" # --- Optional HTTPS (see Config::tls_cert / tls_key) ------------------------ # We pull these in with `default-features = false` because the crates are # already present as transitive deps of `reqwest` (rustls + ring), so enabling # them adds no new downloads. `ring` is the crypto provider used elsewhere. hyper = { version = "1", features = ["server", "http1"] } hyper-util = { version = "0.1", features = ["tokio"] } tower = "0.5" tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12", "logging"] } rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] } rustls-pki-types = { version = "1", features = ["std"] } [profile.release] opt-level = 3 lto = "thin" codegen-units = 1 panic = "abort"