Skip to main content

# package management for C and C++

Build C/C++ packages with a Cargo-style workflow

One cabin.toml describes the project. Cabin resolves your compiler and dependencies, then plans and runs the build.

$ cabindemo
Demo of Cabin package manager

Foundation ports

17

[features]

What Cabin handles

You write the manifest. Cabin finds the compiler, fetches the libraries, and runs the build.

Deterministic builds
Cabin plans the whole build as one Ninja graph: libraries, executables, tests, and examples. The same tree produces the same plan.
Clear diagnostics
When a manifest entry or a build step fails, Cabin says which one and why, in plain words.
Foundation ports
One line in cabin.toml pulls in zlib, libpng, SQLite, fmt, and other widely used C/C++ libraries. The recipes ship inside the cabin binary.
C and C++
C and C++ keep their own standards, compilers, and flags in the same project.
Reproducible dependencies
Lockfiles, vendoring, and offline builds pin each checkout to the same sources.
GCC, Clang, and MSVC
Cabin emits the right flag spelling for each compiler, so the same project builds under all three.

[getting-started]

Start with a package

cabin new gives you a package that builds and runs. Dependencies are one line each in cabin.toml. The docs cover the rest, from manifests to publishing.

quickstartsh

$ cabin new hello$ cd hello$ cabin runHello from Cabin