Skip to main content

Package management for C and C++

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

Cabin uses declarative manifests, deterministic build plans, and local foundation ports for conventional C/C++ projects.

Demo of Cabin package manager

What Cabin handles

Cabin keeps package metadata, toolchain selection, and Ninja generation in one Rust workspace.

Ninja Builds

Cabin plans deterministic Ninja graphs for libraries, executables, tests, and examples.

Typed Diagnostics

CLI errors come from domain errors and render through cabin-diagnostics.

Foundation Ports

Bundled recipes cover zlib, libpng, SQLite, tinyxml2, cJSON, and xxHash.

C And C++

C and C++ standards, compilers, and flags stay separate in mixed projects.

Local Package Flow

Package archives, file registries, vendoring, and lockfiles stay deterministic.

Toolchain Dialects

Toolchain resolution covers GCC, Clang, and MSVC command shapes.

Start with a package

Create a project, add dependencies, inspect the build graph, and publish to a local file registry.