115 lines
2.9 KiB
TOML
115 lines
2.9 KiB
TOML
[package]
|
|
name = "voice-cli"
|
|
version = "0.1.28"
|
|
edition = "2024"
|
|
authors = ["soddygo <soddygo@qq.com>"]
|
|
description = "Speech-to-text HTTP service with CLI interface"
|
|
license = "MIT"
|
|
repository = "https://github.com/nuwax-ai/mcp-proxy"
|
|
|
|
[package.metadata.dist]
|
|
dist = false
|
|
|
|
[[bin]]
|
|
name = "voice-cli"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Web framework and HTTP handling
|
|
axum = { workspace = true }
|
|
tower = { workspace = true }
|
|
tower-http = { workspace = true }
|
|
|
|
# OpenAPI documentation generation
|
|
utoipa = { workspace = true, features = ["axum_extras", "chrono", "uuid"] }
|
|
utoipa-swagger-ui = { workspace = true, features = ["axum"] }
|
|
|
|
# Async runtime
|
|
tokio = { version = "1", features = [
|
|
"macros",
|
|
"net",
|
|
"rt",
|
|
"rt-multi-thread",
|
|
"signal",
|
|
] }
|
|
tokio-util = { workspace = true }
|
|
|
|
# CLI argument parsing
|
|
clap = { workspace = true }
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_yaml = { workspace = true }
|
|
|
|
# Configuration management
|
|
config = { version = "0.15", features = ["yaml", "json", "toml"] }
|
|
|
|
# Logging and tracing
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
tracing-appender = { workspace = true }
|
|
tracing-opentelemetry = { workspace = true }
|
|
opentelemetry = { workspace = true, features = ["trace"] }
|
|
opentelemetry-jaeger = { workspace = true, features = ["rt-tokio"] }
|
|
opentelemetry-semantic-conventions = { workspace = true }
|
|
|
|
# Error handling
|
|
anyhow = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
|
|
# 国际化支持
|
|
rust-i18n = { workspace = true }
|
|
|
|
# HTTP client for model downloads
|
|
reqwest = { version = "0.12", features = ["json", "stream"] }
|
|
|
|
# Time handling
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
|
|
# Utilities
|
|
bytes = "1.0"
|
|
futures = { workspace = true }
|
|
uuid = { workspace = true, features = ["v4","v7"] }
|
|
base64 = "0.22"
|
|
tempfile = "3.0"
|
|
dirs = "6.0"
|
|
url = "2.5"
|
|
|
|
# Embedded database for task persistence
|
|
# sled = { version = "0.34", features = ["compression"] } # Disabled due to zstd dependency conflict
|
|
|
|
|
|
# Audio format detection with Symphonia
|
|
symphonia = { workspace = true }
|
|
bincode = { workspace = true }
|
|
dashmap = { workspace = true }
|
|
infer = "0.19"
|
|
|
|
# FFmpeg command wrapper
|
|
ffmpeg-sidecar = "2.2"
|
|
|
|
# Task queue and persistence for async processing
|
|
apalis = { version = "0.7", features = ["tracing", "limit", "timeout", "catch-panic", "retry", "filter"] }
|
|
apalis-sql = { version = "0.7", features = ["sqlite"] }
|
|
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "chrono", "uuid"] }
|
|
|
|
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
winapi = { version = "0.3", features = ["winuser", "processthreadsapi"] }
|
|
|
|
[dependencies.voice-toolkit]
|
|
workspace = true
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.0"
|
|
|
|
|
|
[features]
|
|
default = []
|
|
# 方便通过 `-p voice-cli --features <name>` 启用/切换后端
|
|
cuda = ["voice-toolkit/cuda"]
|
|
metal = ["voice-toolkit/metal"]
|
|
vulkan = ["voice-toolkit/vulkan"]
|