[package]
name = "splitstream"
version = "0.1.7"
edition = "2024"
description = "Real-time (local & cloud) simultaneous microphone and system audio transcription for macOS."
license = "AGPL-3.0-only"
repository = "https://github.com/samuelokirby/splitstream"
keywords = ["audio", "transcription", "speech-to-text", "macos", "system-audio"]
categories = ["multimedia::audio", "api-bindings"]
readme = "README.md"

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

[[bin]]
name = "splitstream"
path = "src/bin/splitstream.rs"

[[bin]]
name = "download-parakeet"
path = "src/bin/download_parakeet.rs"

[features]
default = ["parakeet"]
whisper  = ["dep:whisper-rs"]
parakeet = ["dep:parakeet-rs"]
deepgram = ["dep:opus", "dep:ogg", "dep:tokio-tungstenite", "dep:tungstenite", "dep:futures-util", "dep:http"]

[dependencies]
aec-rs = "1.0.0"
cidre = "0.15"
chrono = "0.4.42"
colored = "3.0.0"
config = "0.15.15"
cpal = "0.17.3"
dotenvy = "0.15"
fixed-resample = "0.9.1"
futures-util = { version = "0.3.31", optional = true }
http = { version = "1.3.1", optional = true }
log = "0.4.28"
ogg = { version = "0.9.2", optional = true }
opus = { version = "0.3.0", optional = true }
ringbuf = "0.4.8"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.143"
thiserror = "2.0.16"
tokio = { version = "1.47.1", features = ["full"] }
tokio-tungstenite = { version = "0.27.0", features = ["native-tls"], optional = true }
tungstenite = { version = "0.27.0", optional = true }
parakeet-rs = { version = "0.3", optional = true }
reqwest = { version = "0.12", features = ["blocking", "rustls-tls"], default-features = false }
whisper-rs = { version = "0.15", features = ["metal"], optional = true }

[dev-dependencies]
