[workspace]
members = [".", "subx-core"]
default-members = [".", "subx-core"]
resolver = "3"
[package]
name = "subx-cli"
version = "2.0.0"
edition = "2024"
authors = ["Jim Chen <Jim@ChenJ.im>"]
description = "AI subtitle processing CLI tool, which automatically matches, renames, and converts subtitle files."
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"]
exclude = [
"assets/",
".github/",
"tests/",
"target/",
"*.mp4",
"*.mp3",
"*.mov",
"*.avi",
"*.mkv",
"plans/",
"scripts/test_*.sh",
"benches/",
"**/*.log",
"**/*.tmp",
"**/.DS_Store",
"Cargo.lock",
]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = []
slow-tests = ["subx-core/slow-tests"]
archive-rar = ["subx-core/archive-rar"]
[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"
doc_markdown = "allow"
[lints.rust]
missing_docs = "allow"
[dependencies]
subx-core = { path = "subx-core", version = "1.0" }
clap = { version = "4.5.40", features = ["derive", "cargo"] }
clap_complete = "4.5.54"
tokio = { version = "1.0", features = [
"rt-multi-thread",
"macros",
"time",
] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "1"
log = "0.4"
env_logger = "0.11"
colored = "3.0"
tabled = "0.20"
indicatif = "0.18"
dirs = "6.0"
[dev-dependencies]
subx-core = { path = "subx-core", version = "1.0", features = ["test-support"] }
anyhow = "1.0"
async-trait = "0.1"
encoding_rs = "0.8"
flate2 = "1"
reqwest = { version = "0.13", features = ["json", "stream", "rustls"] }
sevenz-rust2 = "0.22.2"
tar = "0.4"
tempfile = "3.10"
tokio = { version = "1.0", features = ["fs", "sync"] }
uuid = { version = "1.3", features = ["v7"] }
zip = "8"
assert_cmd = "2.0"
predicates = "3.0"
regex = "1.10"
wiremock = "0.6"
[[bin]]
name = "subx-cli"
path = "src/main.rs"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true
[profile.dev]
opt-level = 0
debug = true
split-debuginfo = "unpacked"