# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.94.0"
name = "adk-realtime"
version = "1.0.0"
authors = ["James Karanja Maina <james.karanja@zavora.ai>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Real-time bidirectional audio/video streaming for Rust Agent Development Kit (ADK-Rust) agents"
documentation = "https://docs.rs/adk-realtime"
readme = "README.md"
keywords = [
    "adk",
    "ai",
    "realtime",
    "voice",
    "audio",
]
categories = [
    "api-bindings",
    "asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/zavora-ai/adk-rust"
resolver = "2"

[features]
default = []
did-avatar = [
    "video-avatar",
    "dep:str0m",
    "dep:reqwest",
]
full = [
    "openai",
    "gemini",
    "vertex-live",
    "livekit",
]
full-webrtc = [
    "full",
    "openai-webrtc",
]
gemini = [
    "dep:tokio-tungstenite",
    "dep:adk-gemini",
]
heygen-avatar = [
    "video-avatar",
    "livekit",
    "dep:reqwest",
]
livekit = [
    "dep:livekit",
    "dep:livekit-api",
    "dep:tokio-tungstenite",
]
openai = [
    "dep:async-openai",
    "dep:tokio-tungstenite",
    "dep:getrandom",
]
openai-webrtc = [
    "openai",
    "dep:str0m",
    "dep:audiopus",
    "dep:reqwest",
]
vertex-live = [
    "gemini",
    "dep:google-cloud-auth",
]
video-avatar = []

[lib]
name = "adk_realtime"
path = "src/lib.rs"

[[example]]
name = "debug_gemini"
path = "examples/debug_gemini.rs"
required-features = ["gemini"]

[[example]]
name = "debug_livekit_auth"
path = "examples/debug_livekit_auth.rs"
required-features = ["livekit"]

[[example]]
name = "did_avatar"
path = "examples/did_avatar.rs"
required-features = ["did-avatar"]

[[example]]
name = "gemini_context_mutation"
path = "examples/gemini_context_mutation.rs"
required-features = ["gemini"]

[[example]]
name = "heygen_avatar"
path = "examples/heygen_avatar.rs"
required-features = ["heygen-avatar"]

[[example]]
name = "livekit_bridge"
path = "examples/livekit_bridge.rs"
required-features = [
    "livekit",
    "openai",
]

[[example]]
name = "livekit_gemini_bridge"
path = "examples/livekit_gemini_bridge.rs"
required-features = [
    "livekit",
    "gemini",
]

[[example]]
name = "openai_session_update"
path = "examples/openai_session_update.rs"
required-features = ["openai"]

[[example]]
name = "openai_webrtc"
path = "examples/openai_webrtc.rs"
required-features = ["openai-webrtc"]

[[example]]
name = "vertex_live_tools"
path = "examples/vertex_live_tools.rs"
required-features = ["vertex-live"]

[[example]]
name = "vertex_live_voice"
path = "examples/vertex_live_voice.rs"
required-features = ["vertex-live"]

[[test]]
name = "audio_tests"
path = "tests/audio_tests.rs"

[[test]]
name = "avatar_property_tests"
path = "tests/avatar_property_tests.rs"

[[test]]
name = "config_tests"
path = "tests/config_tests.rs"

[[test]]
name = "error_context_tests"
path = "tests/error_context_tests.rs"

[[test]]
name = "events_tests"
path = "tests/events_tests.rs"

[[test]]
name = "livekit_bridge_integration_tests"
path = "tests/livekit_bridge_integration_tests.rs"

[[test]]
name = "livekit_delegation_tests"
path = "tests/livekit_delegation_tests.rs"

[[test]]
name = "openai_webrtc_integration_tests"
path = "tests/openai_webrtc_integration_tests.rs"

[[test]]
name = "opus_roundtrip_tests"
path = "tests/opus_roundtrip_tests.rs"

[[test]]
name = "sdp_offer_tests"
path = "tests/sdp_offer_tests.rs"

[[test]]
name = "vertex_live_integration_tests"
path = "tests/vertex_live_integration_tests.rs"

[[test]]
name = "vertex_url_property_tests"
path = "tests/vertex_url_property_tests.rs"

[[bench]]
name = "livekit_pcm_bench"
path = "benches/livekit_pcm_bench.rs"
harness = false

[dependencies.adk-core]
version = "1.0.0"

[dependencies.adk-gemini]
version = "1.0.0"
optional = true

[dependencies.async-openai]
version = "0.33"
features = ["realtime"]
optional = true

[dependencies.async-stream]
version = "0.3"

[dependencies.async-trait]
version = "0.1"

[dependencies.audiopus]
version = "0.3.0-rc.0"
optional = true

[dependencies.base64]
version = "0.22"

[dependencies.bytemuck]
version = "1.25"

[dependencies.bytes]
version = "1"

[dependencies.futures]
version = "0.3"

[dependencies.getrandom]
version = "0.3"
optional = true

[dependencies.google-cloud-auth]
version = "1.4"
features = ["default-rustls-provider"]
optional = true
default-features = false

[dependencies.livekit]
version = "0.7.36"
features = [
    "tokio",
    "native-tls",
]
optional = true
default-features = false

[dependencies.livekit-api]
version = "0.4.18"
features = [
    "signal-client-tokio",
    "services-tokio",
    "access-token",
]
optional = true
default-features = false

[dependencies.parking_lot]
version = "0.12.5"

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "stream",
    "rustls-tls-native-roots",
    "multipart",
]
optional = true
default-features = false

[dependencies.rustls]
version = "0.23.37"
features = ["aws-lc-rs"]

[dependencies.secrecy]
version = "0.10.3"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.str0m]
version = "0.17"
optional = true

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
version = "1.40"
features = [
    "sync",
    "net",
    "time",
    "rt",
]
default-features = false

[dependencies.tokio-tungstenite]
version = "0.28"
features = [
    "rustls-tls-native-roots",
    "connect",
]
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.url]
version = "2.5"

[dependencies.uuid]
version = "1.23"
features = [
    "v4",
    "serde",
]

[dev-dependencies.anyhow]
version = "1.0"

[dev-dependencies.dotenvy]
version = "0.15"

[dev-dependencies.proptest]
version = "1.5"

[dev-dependencies.tokio]
version = "1.40"
features = [
    "rt",
    "rt-multi-thread",
    "macros",
    "test-util",
]
default-features = false

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]

[dev-dependencies.url]
version = "2.5"
