Dependencies
Semua dependency dideklarasikan di [workspace.dependencies] dalam Cargo.toml root, lalu di-inherit oleh setiap crate anggota.
Crate per Layer
Domain (apps/domain)
Hanya boleh pakai dependency yang tidak membawa I/O:
| Crate |
Versi |
Fungsi |
serde |
1 |
Serialisasi (derive) |
serde_json |
1 |
JSON |
chrono |
0.4 |
Tanggal/waktu |
uuid |
1 |
UUID v4/v5 |
anyhow |
1 |
Error handling |
thiserror |
1 |
Derive error types |
Infrastructure (apps/infrastructure)
Semua I/O, LLM, DB, tools:
| Crate |
Versi |
Fungsi |
tokio |
1 |
Async runtime (rt-multi-thread, macros, sync, time, net, io-util, signal) |
reqwest |
0.13 |
HTTP client (json, stream, blocking, native-tls-vendored, form) |
rusqlite |
0.40 |
SQLite (bundled — tidak perlu install sistem) |
rmcp |
2.2 |
MCP client (child-process, streamable HTTP) |
tiktoken-rs |
0.12 |
Token counting (OpenAI cl100k) |
similar |
3 |
Diff computation |
syntect |
5 |
Syntax highlighting (default-fancy) |
ignore |
0.4 |
File walking dengan .gitignore support |
globset |
0.4 |
Glob pattern matching |
include_dir |
0.7 |
Embed direktori ke binary |
infer |
0.19 |
Deteksi tipe file dari byte signature |
regex |
1 |
Regular expressions |
nucleo-matcher |
0.3 |
Fuzzy matching (untuk @mention autocomplete) |
webbrowser |
1 |
Buka URL di browser (OAuth) |
url |
2 |
URL parsing |
percent-encoding |
2 |
URL encoding |
dom_smoothie |
0.18.0 |
HTML DOM manipulation |
fast_html2md |
0.0.62 |
HTML → Markdown |
scraper |
0.27.0 |
HTML parsing + CSS selector |
pulldown-cmark |
0.13 |
Markdown parsing |
lsp-types |
0.97 |
LSP protocol types |
futures-util |
0.3 |
Async stream combinators |
libc |
0.2 |
Raw C FFI (Unix process groups) |
TUI (apps/interfaces/tui)
| Crate |
Versi |
Fungsi |
ratatui |
0.30.2 |
TUI framework |
crossterm |
0.29 |
Terminal manipulation (raw mode, events, mouse) |
base64 |
0.22 |
Base64 (OSC52 clipboard) |
sha2 |
0.11 |
SHA-256 |
hex |
0.4 |
Hex encoding |
dirs |
6 |
Platform data directory |
API (apps/interfaces/api)
| Crate |
Versi |
Fungsi |
axum |
0.8 |
HTTP server framework (macros) |
tower |
0.5 |
Middleware layer |
tower-http |
0.6 |
CORS, body limit |
argon2 |
0.5 |
Password hashing |
jsonwebtoken |
9 |
JWT (HS256) |
clap |
4 |
CLI argument parsing (derive) |
rand_core |
0.6 |
Secure random (getrandom) |
Serialization (semua layer)
| Crate |
Versi |
Fungsi |
serde |
1 |
Framework serialisasi |
serde_json |
1 |
JSON |
serde_yaml_ng |
0.10 |
YAML (frontmatter memory files) |
Layanan Eksternal
| Layanan |
Fungsi |
| LLM Provider |
OpenAI/Anthropic-compatible API (default: OpenCode AI / DeepSeek) |
| MCP Servers |
Tool servers eksternal via stdio atau HTTP |
| LSP Servers |
rust-analyzer, typescript-language-server, pyright, gopls, dll |
| GitHub |
Release artifacts via semantic-release CI |
Build & CI
Compiler Lints (Cargo.toml workspace)
Release Profile
CI/CD
- CI:
cargo build + cargo test + cargo clippy --all-targets pada setiap push
- Release: semantic-release — auto changelog, Cargo.toml version bump, GitHub artifact upload
- Versioning:
v1.17.0 (saat ini) — mengikuti semver dari commit messages
Feature Flags Penting
| Crate |
Feature |
Alasan |
rusqlite |
bundled |
SQLite statically linked — tidak perlu install sistem |
reqwest |
blocking |
Sync HTTP untuk agent turn di blocking thread |
reqwest |
native-tls-vendored |
TLS tanpa dependency sistem |
tokio |
rt-multi-thread |
Async runtime multi-thread |
pulldown-cmark |
(no default) |
Tidak include semua fitur berat |
syntect |
default-fancy |
Syntax highlighting penuh |
rmcp |
transport-child-process + transport-streamable-http-client-reqwest |
MCP via stdio dan HTTP |