[package]
name = "adk-realtime"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
description = "Real-time bidirectional audio/video streaming for Rust Agent Development Kit (ADK-Rust) agents"
repository = "https://github.com/zavora-ai/adk-rust"
documentation = "https://docs.rs/adk-realtime"
keywords = ["adk", "ai", "realtime", "voice", "audio"]
categories = ["api-bindings", "asynchronous"]
readme = "README.md"

[dependencies]
# Core ADK dependencies
adk-core = { path = "../adk-core", version = "0.1.5" }

# Async runtime
tokio = { workspace = true }
async-trait.workspace = true
futures.workspace = true
async-stream.workspace = true

# Serialization
serde.workspace = true
serde_json.workspace = true

# WebSocket
tokio-tungstenite = { version = "0.24", features = ["native-tls"], optional = true }

# Error handling
thiserror.workspace = true

# Logging
tracing.workspace = true

# Base64 for audio encoding
base64 = "0.22"

# UUID for session IDs
uuid.workspace = true

# Random number generation
getrandom = "0.2"

# OpenAI realtime types (optional)
async-openai = { version = "0.27", optional = true }

[dev-dependencies]
tokio.workspace = true
dotenvy = "0.15"

[features]
default = []
# Enable OpenAI Realtime API support
openai = ["dep:async-openai", "dep:tokio-tungstenite"]
# Enable Gemini Live API support
gemini = ["dep:tokio-tungstenite"]
# Enable all providers
full = ["openai", "gemini"]
