subx-cli 0.4.1

智慧字幕處理 CLI 工具,使用 AI 技術自動匹配、重命名和處理字幕檔案
Documentation
[package]
name = "subx-cli"
version = "0.4.1"
edition = "2024"
authors = ["CHEN, CHUN <jim60105@gmail.com>"]
description = "智慧字幕處理 CLI 工具,使用 AI 技術自動匹配、重命名和處理字幕檔案"
license = "GPL-3.0-or-later"
repository = "https://github.com/jim60105/subx-cli"
homepage = "https://github.com/jim60105/subx-cli"
keywords = ["subtitle", "cli", "ai", "video"]
categories = ["command-line-utilities", "multimedia"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

# Documentation quality linting
[lints.rustdoc]
broken_intra_doc_links = "deny"
private_doc_tests = "warn"
invalid_rust_codeblocks = "warn"
bare_urls = "warn"

[lints.clippy]
missing_docs_in_private_items = "allow"  # Allow missing private docs
doc_markdown = "allow"  # Allow markdown formatting warnings

[lints.rust]
missing_docs = "allow"  # Allow missing docs at rust level

[dependencies]
# CLI 框架
clap = { version = "4.5.40", features = ["derive", "cargo"] }
clap_complete = "4.5.54"

# 字幕格式解析相依
regex = "1.0"
encoding_rs = "0.8"

# 非同步執行時
tokio = { version = "1.0", features = ["full"] }

# 錯誤處理
anyhow = "1.0"
thiserror = "2.0"

# 序列化
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"

# 配置管理
config = "0.15"

# HTTP 客戶端
reqwest = { version = "0.12.20", features = ["json", "rustls-tls"] }

# 檔案掃描
walkdir = "2.3"

# URL 解析與驗證
url = "2"

# 檔案變更監控
notify = "8.0"

# 並行處理支援
futures = "0.3"

# 非同步 trait 支援
async-trait = "0.1"
uuid = { version = "1.3", features = ["v4"] }

# 日誌
log = "0.4"
env_logger = "0.11"

# 用戶介面
colored = "3.0"
tabled = "0.20"
indicatif = "0.17"
dialoguer = "0.11"
md5 = "0.7"

# 配置管理相依:路徑解析與多核心檢測
# 音訊處理
symphonia = { version = "0.5", features = ["all"] }
# 音訊處理系統遷移至 aus crate
aus = "0.1.8"

# 配置管理相依:路徑解析與多核心檢測
dirs = "6.0"
num_cpus = "1.0"

[dev-dependencies]
# testing frameworks and utilities
tokio-test = "0.4"
assert_cmd = "2.0"
predicates = "3.0"
tempfile = "3.10"

# mock and test case generation
mockall = "0.13"
rstest = "0.25"
test-case = "3.0"
regex = "1.10"  # For test output validation

# coverage and HTTP mocking
wiremock = "0.6"
criterion = { version = "0.6.0", features = ["html_reports"] }

[[bin]]
name = "subx-cli"
path = "src/main.rs"

[[bench]]
name = "retry_performance"
harness = false

[[bench]]
name = "file_id_generation_bench"
harness = false

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true

[profile.dev]
opt-level = 0
debug = true
split-debuginfo = "unpacked"

#[ Cross-platform dependencies ]
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["winuser"] }

[target.'cfg(unix)'.dependencies]
libc = "0.2"