[package] name = "claude_code_rs" version = "0.1.0" edition = "2021" description = "High-performance Rust implementation of Claude Code CLI" license = "MIT" repository = "https://github.com/lorryjovens-hub/claude-code-rust" [dependencies] # CLI clap = { version = "4.5", features = ["derive", "color", "suggestions"] } colored = "2.1" indicatif = "0.17" # Async runtime tokio = { version = "1.37", features = ["full"] } futures = "0.3" # HTTP & API reqwest = { version = "0.12", features = ["json", "stream", "rustls-tls", "blocking"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # File system walkdir = "2.5" glob = "0.3" notify = "6.1" # Terminal UI crossterm = { version = "0.27", features = ["event-stream"] } ratatui = "0.26" # Process & Shell which = "6.0" # Configuration config = "0.14" toml = "0.8" # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Error handling thiserror = "1.0" anyhow = "1.0" # Memory & Cache lru = "0.12" dashmap = "5.5" # Crypto & Auth sha2 = "0.10" base64 = "0.22" jsonwebtoken = "9.3" # MCP Protocol async-trait = "0.1" # Regex & Parsing regex = "1.10" nom = "7.1" # Time chrono = { version = "0.4", features = ["serde"] } # UUID uuid = { version = "1.8", features = ["v4", "serde"] } # Directories dirs = "5.0" # Diff similar = "2.5" # Markdown & Syntax Highlighting pulldown-cmark = "0.10" syntect = { version = "5.2", default-features = false, features = ["default-themes", "default-syntaxes", "regex-onig"] } # Terminal utilities terminal_size = "0.3" # File operations fs_extra = "1.3" # WebAssembly wasm-bindgen = { version = "0.2", optional = true } wasm-bindgen-futures = { version = "0.4", optional = true } js-sys = { version = "0.3", optional = true } web-sys = { version = "0.3", optional = true } # GUI (egui) eframe = { version = "0.28", optional = true } egui = { version = "0.28", optional = true } egui_extras = { version = "0.28", optional = true } # Note: iced is disabled due to web-sys version conflicts with eframe # GUI (iced) - alternative (disabled) # iced = { version = "0.12", optional = true, features = ["tokio"] } # Web server for plugin marketplace axum = { version = "0.7", optional = true } tower = { version = "0.4", optional = true } tower-http = { version = "0.5", optional = true, features = ["fs", "cors"] } askama = { version = "0.12", optional = true } # Internationalization (i18n) fluent = { version = "0.16", optional = true } fluent-bundle = { version = "0.15", optional = true } unic-langid = { version = "0.9", optional = true, features = ["macros"] } rust-embed = { version = "8.4", optional = true } [dev-dependencies] tempfile = "3.10" mockall = "0.12" wasm-bindgen-test = "0.3" [features] default = ["gui-egui", "i18n"] wasm = ["wasm-bindgen", "wasm-bindgen-futures", "js-sys", "web-sys"] gui-egui = ["eframe", "egui", "egui_extras"] # gui-iced = ["iced"] web = ["axum", "tower", "tower-http", "askama"] i18n = ["fluent", "fluent-bundle", "unic-langid", "rust-embed"] full = ["wasm", "gui-egui", "web", "i18n"] [[bin]] name = "claude-code" path = "src/main.rs" [[bin]] name = "claude-code-gui" path = "src/gui/main.rs" required-features = ["gui-egui"] [[bin]] name = "claude-code-web" path = "src/web/main.rs" required-features = ["web"]