[package] name = "quicommit" version = "0.1.0" edition = "2024" authors = ["Sidney Zhang "] description = "A powerful Git assistant tool with AI-powered commit/tag/changelog generation" license = "MIT" repository = "https://github.com/yourusername/quicommit" keywords = ["git", "commit", "ai", "cli", "automation"] categories = ["command-line-utilities", "development-tools"] [[bin]] name = "quicommit" path = "src/main.rs" [dependencies] # CLI and argument parsing clap = { version = "4.5", features = ["derive", "env", "wrap_help"] } clap_complete = "4.5" dialoguer = "0.11" console = "0.15" indicatif = "0.17" # Configuration management config = "0.14" serde = { version = "1.0", features = ["derive"] } toml = "0.8" dirs = "5.0" # Git operations git2 = "0.20.3" which = "6.0" # HTTP client for LLM APIs reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false } tokio = { version = "1.35", features = ["full"] } # Error handling thiserror = "1.0" anyhow = "1.0" # Logging and tracing tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } # Utilities chrono = { version = "0.4", features = ["serde"] } regex = "1.10" lazy_static = "1.4" colored = "2.1" handlebars = "5.1" semver = "1.0" walkdir = "2.4" tempfile = "3.9" sha2 = "0.10" hex = "0.4" textwrap = "0.16" async-trait = "0.1" serde_json = "1.0" atty = "0.2" # Encryption for sensitive data (SSH keys, GPG, etc.) aes-gcm = "0.10" argon2 = "0.5" rand = "0.8" base64 = "0.22" # Interactive editor edit = "0.1" # Shell completion generation shell-words = "1.1" [dev-dependencies] assert_cmd = "2.0" predicates = "3.1" tempfile = "3.9" mockall = "0.12" wiremock = "0.6" [profile.release] opt-level = 3 lto = true codegen-units = 1 strip = true [profile.dev] opt-level = 0 debug = true