100 lines
3.3 KiB
Markdown
100 lines
3.3 KiB
Markdown
# Dependencies
|
|||
|
|
|
||
|
|
## Rust Crates (30+ direct)
|
||
|
|
|
||
|
|
### Core Framework
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `ratatui` | 0.30.2 | TUI framework |
|
||
|
|
| `crossterm` | 0.29 | Terminal manipulation |
|
||
|
|
| `tokio` | 1 | Async runtime (multi-thread, macros, sync, time, net, io-util, signal) |
|
||
|
|
|
||
|
|
### HTTP & Networking
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `reqwest` | 0.13 | HTTP client (JSON, streaming, native-tls-vendored, form) |
|
||
|
|
| `rmcp` | 2.2 | MCP client (child-process, streamable HTTP) |
|
||
|
|
| `webbrowser` | 1 | Open URLs in browser |
|
||
|
|
| `url` | 2 | URL parsing |
|
||
|
|
| `percent-encoding` | 2 | URL encoding |
|
||
|
|
|
||
|
|
### HTML/Markdown
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `dom_smoothie` | 0.18.0 | HTML DOM manipulation |
|
||
|
|
| `fast_html2md` | 0.0.62 | HTML-to-Markdown conversion |
|
||
|
|
| `scraper` | 0.27.0 | HTML parsing/selecting |
|
||
|
|
| `pulldown-cmark` | 0.13 | Markdown parsing (no default features) |
|
||
|
|
|
||
|
|
### Serialization
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `serde` | 1 | Serialization framework |
|
||
|
|
| `serde_json` | 1 | JSON serialization |
|
||
|
|
| `serde_yaml_ng` | 0.10 | YAML serialization |
|
||
|
|
|
||
|
|
### Storage & Files
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `rusqlite` | 0.40 | SQLite (bundled) |
|
||
|
|
| `ignore` | 0.4 | `.gitignore`-aware file walking |
|
||
|
|
| `globset` | 0.4 | Glob pattern matching |
|
||
|
|
| `include_dir` | 0.7 | Embed directory contents in binary |
|
||
|
|
| `infer` | 0.19 | File type detection |
|
||
|
|
| `dirs` | 6 | Standard OS directories |
|
||
|
|
|
||
|
|
### Text & Search
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `regex` | 1 | Regular expressions |
|
||
|
|
| `nucleo-matcher` | 0.3 | Fuzzy matching (for @mention autocomplete) |
|
||
|
|
| `similar` | 3 | Diff computation |
|
||
|
|
| `syntect` | 5 | Syntax highlighting |
|
||
|
|
| `tiktoken-rs` | 0.12 | OpenAI token counting |
|
||
|
|
|
||
|
|
### Cryptography & Encoding
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `base64` | 0.22 | Base64 encoding |
|
||
|
|
| `sha2` | 0.11 | SHA-256 hashing |
|
||
|
|
| `hex` | 0.4 | Hex encoding |
|
||
|
|
| `uuid` | 1 | UUID generation (v4, v5) |
|
||
|
|
| `libc` | 0.2 | Raw C FFI bindings |
|
||
|
|
|
||
|
|
### Error Handling & Logging
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `anyhow` | 1 | Error handling |
|
||
|
|
| `tracing` | 0.1 | Structured logging |
|
||
|
|
| `tracing-subscriber` | 0.3 | Log subscriber with env-filter |
|
||
|
|
| `chrono` | 0.4 | Date/time with serde |
|
||
|
|
|
||
|
|
### Other
|
||
|
|
| Crate | Version | Purpose |
|
||
|
|
|-------|---------|---------|
|
||
|
|
| `lsp-types` | 0.97 | LSP protocol types |
|
||
|
|
| `futures-util` | 0.3 | Async stream combinators |
|
||
|
|
|
||
|
|
## External Services
|
||
|
|
|
||
|
|
| Service | Purpose |
|
||
|
|
|---------|---------|
|
||
|
|
| **Anthropic API** | Primary LLM provider |
|
||
|
|
| **OpenAI API** | Alternative LLM provider (including OAuth) |
|
||
|
|
| **GitHub** | Release artifacts via semantic-release CI |
|
||
|
|
| **MCP Servers** | External tool servers (stdio or HTTP) |
|
||
|
|
| **LSP Servers** | Language servers (rust-analyzer, TypeScript, Pyright, gopls, etc.) |
|
||
|
|
|
||
|
|
## Build Configuration
|
||
|
|
|
||
|
|
### Compiler Lints (`.cargo/config.toml`)
|
||
|
|
All unused code, dead code, and deprecation warnings promoted to errors:
|
||
|
|
`-W unused`, `-W dead_code`, `-W unreachable_code`, `-D warnings`
|
||
|
|
|
||
|
|
### Release Profile
|
||
|
|
`opt-level=3`, LTO="fat", `codegen-units=1`, `panic="abort"`, `strip="symbols"`, `overflow-checks=true`
|
||
|
|
|
||
|
|
### CI/CD
|
||
|
|
- **CI**: cargo build + test + clippy on every push
|
||
|
|
- **Release**: semantic-release with changelog generation, Cargo.toml version bump, GitHub artifact upload
|