Deacon
A fast, lightweight Rust implementation of the DevContainer CLI for reproducible development environments.

Overview
Deacon is a production-ready Rust implementation of the Development Containers CLI, following the containers.dev specification. It provides DevOps teams and developers with a fast, cross-platform tool for managing containerized development environments without requiring Node.js. With a startup time under 100ms and a ~40MB binary, Deacon brings the full power of DevContainers to CI/CD pipelines and teams seeking lightweight, reproducible workflows.
Key Features
up/exec/down commands with all lifecycle phases (onCreate, postCreate, postStart, postAttach), idempotent operations, and container state persistence.devcontainer.json parsing with variable substitution, extends chains for layered configurations, and Docker Compose multi-service orchestration.doctor command validates Docker availability, disk space, CPU, and memory requirements with JSON output for automation.Use Cases
Deacon excels in these scenarios:
Technical Highlights
Built in Rust (Edition 2021) using tokio for async I/O, reqwest with rustls for OCI registry operations, and clap for CLI parsing. The architecture separates the CLI binary from the core domain library, with abstractions like ContainerRuntime (Docker/Podman), ConfigLoader (extends chain resolution), and FeatureInstaller (OCI installation with dependency resolution). Performance optimizations include container environment probe caching and parallel feature installation.
Getting Started
Install via curl: curl -fsSL https://get2knowio.github.io/deacon/install.sh | bash. Run deacon up --workspace-folder . in any directory with a .devcontainer/devcontainer.json to start a development container. Use deacon exec -- <command> to run commands inside, and deacon doctor --json for system diagnostics.