# 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.

Foundation ports
17
Registry packages
Registry versions
Downloads
[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