Skip to content

Repository files navigation

Containust

Daemon-less containers for local, sovereign, and air-gapped work.

Compose stacks in .ctst, pull digest-pinned images, run without a privileged daemon. Native Linux isolation; QEMU on macOS and Windows.

CI Release License

GA 1.2.0 · Landing · Docs · Roadmap


Why

  • No daemon — each ctst command talks to the backend and writes file state
  • Declarative .ctstCOMPONENT, CONNECT, EXPOSE, restart, healthcheck
  • Local-first imagesfile://, tar://, preset://, digest-pinned ctst pull
  • Air-gapped ready--offline rejects the network before connect
  • Linux isolation — user + PID namespaces default-on; remappable EXPOSE; named networks and /etc/hosts peer DNS foundations
  • Rust SDK — parser, graph, and runtime APIs without the CLI
  • Source-availablecommercial license; evaluation free, production needs a paid license (COMMERCIAL.md)

Install

VERSION=1.2.0
TARGET=x86_64-unknown-linux-gnu   # or aarch64-*-gnu, *-apple-darwin, …
curl -LO "https://github.com/RemiPelloux/Containust/releases/download/v${VERSION}/ctst-${TARGET}.tar.gz"
curl -LO "https://github.com/RemiPelloux/Containust/releases/download/v${VERSION}/ctst-${TARGET}.tar.gz.sha256"
sha256sum -c "ctst-${TARGET}.tar.gz.sha256"
tar xzf "ctst-${TARGET}.tar.gz" && sudo install -m 755 ctst /usr/local/bin/ctst

Also: .deb / .rpm, Homebrew formula, or cargo install --path crates/containust-cli. Details in docs/PACKAGING.md.

macOS / Windows need QEMU 7+.

Quick start

ctst pull alpine:3.21
ctst plan examples/alpine_preset.ctst
ctst build examples/alpine_preset.ctst
ctst run examples/alpine_preset.ctst --detach
ctst ps --all
ctst logs app
ctst stop app && ctst rm app
COMPONENT api {
    image   = "file:///opt/images/api"
    port    = 8080
    memory  = "256MiB"
}

COMPONENT db {
    image = "tar:///opt/images/postgres.tar"
    port  = 5432
}

CONNECT api -> db
EXPOSE 8080

Commands

Command Purpose
ctst plan / build / run Validate, import images, start
ctst pull OCI pull into the local catalog
ctst ps / logs / exec Inspect
ctst stop / rm Tear down
ctst convert Compose → .ctst
ctst vm start/stop QEMU lifecycle (macOS / Windows)

Full reference: docs/CLI_REFERENCE.md.

Platforms

Host Backend Needs
Linux 5.10+ Native namespaces + cgroups v2 Root or delegated userns
macOS / Windows QEMU + agent QEMU 7+, first-run VM assets

Docs

Path Role
site/ Product landing page
site/docs/ HTML documentation (start here)
docs/HowToUse.md Operator guide (markdown source)
docs/README.md Full markdown documentation map
ARCHITECTURE.md Crate layers
roadmap.md Sprint roadmap

Develop

cargo test --workspace --lib --tests
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo deny check

See docs/CONTRIBUTING.md.

License

Containust is proprietary and source-available under the Containust Commercial License. Evaluation use is allowed; production, redistribution, and commercial embedding require a paid license. See COMMERCIAL.md.

About

Daemon-less, sovereign container runtime written in Rust. Zero daemon, native .ctst composition language, eBPF observability, air-gap ready. A next-generation alternative to Docker for security-critical infrastructure.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages