Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR-001: Rust and a cargo workspace

Status: Accepted — 2026-09-26

Context

An autonomous coding framework runs for hours, spawns processes, talks to several network services concurrently and manipulates the user’s repository. It must be fast to start, cheap to run on a laptop, safe against memory errors, and distributable as a single binary on Linux, macOS and Windows. It must also be pleasant to extend by people who are not its authors.

Decision

The framework is written in Rust (edition 2024, MSRV 1.88) and organised as a cargo workspace of small, layered crates. Each crate has one responsibility and a documented public API; vibe-core holds only types and traits and has no I/O dependencies.

unsafe_code is forbidden workspace-wide, every public item is documented (missing_docs = warn with -D warnings in CI), and clippy runs on all targets.

Consequences

  • Single static binary, no runtime to install, fast start-up.
  • Strong typing of every artefact (spec, plan, report) catches malformed model output at the boundary instead of deep inside the pipeline.
  • Async everywhere via Tokio; agents and tools run concurrently without threads per task.
  • Higher barrier for casual contributors than a scripting language; mitigated by the out-of-process plugin protocol (ADR-005) that lets extensions be written in any language.