MCPcopy Index your code
hub / github.com/cabinpkg/cabin

github.com/cabinpkg/cabin @0.16.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.16.0 ↗ · + Follow
4,411 symbols 18,565 edges 339 files 864 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Cabin

[!CAUTION] Cabin is pre-1.0 and may still contain bugs.

demo

Cabin is an opinionated C/C++ build tool written in Rust. Inspired by Cargo, it uses a predictable project structure and declarative metadata to reduce build configuration boilerplate.

It is designed for conventional C/C++ projects that want a simpler, more reproducible build workflow without relying on custom build languages.

Installation

Read "Installation" from Cabin Docs.

Installing from Source (not recommended)

See INSTALL.md.

Examples

Runnable Cabin example projects live in examples/. Each one is a real Cabin package you can build and run directly; see examples/README.md for the index.

Community

See GitHub Discussions.

Sponsorship

This project was initially funded by the MITOU IT Program (project page (ja)) — with additional support from Shigeru Urushibara (漆原 茂) of UL Systems, Inc..

If you find Cabin useful, please consider sponsoring me to support its continued development.

Contributing

See CONTRIBUTING.md.

License

Cabin is licensed under the terms of the Apache License version 2.0.

See LICENSE for details.

Extension points exported contracts — how you extend this code

TestOutputSink (Interface)
Sink for test executable output. The runner forwards stdout / stderr chunks to this sink while each process is still run [4 …
crates/cabin-test/src/lib.rs
ToolRunner (Interface)
Run a tool with `args` and capture its merged output. The trait abstracts over `std::process::Command` so the unit test [3 …
crates/cabin-toolchain/src/detect.rs
MarkdownNode (Interface)
* Rewrites the canonical Markdown cross-links so they resolve against the * Astro docs route. * * The docs are author
website/src/lib/remark-docs-links.ts
DocsSearchItem (Interface)
(no doc)
website/src/lib/docsSearch.ts
DocsSearch (Interface)
(no doc)
website/src/lib/docsSearch.ts
PortTomlPort (Interface)
(no doc)
website/src/lib/ports.ts
PortToml (Interface)
(no doc)
website/src/lib/ports.ts

Core symbols most depended-on inside this repo

new
called by 2289
crates/cabin/src/cli/init.rs
path
called by 483
crates/cabin-core/src/toolchain.rs
as_str
called by 463
crates/cabin-core/src/model.rs
iter
called by 364
crates/cabin-test/src/lib.rs
insert
called by 220
crates/cabin-core/src/model.rs
parse
called by 175
crates/cabin-port/src/parse.rs
find
called by 146
crates/cabin-lockfile/src/model.rs
is_empty
called by 136
crates/cabin-test/src/lib.rs

Shape

Function 3,415
Method 442
Class 380
Enum 150
Interface 24

Languages

Rust96%
TypeScript3%
C1%
C++1%

Modules by API surface

crates/cabin-manifest/src/parse/tests.rs128 symbols
crates/cabin/tests/cli.rs89 symbols
crates/cabin-core/src/model.rs83 symbols
crates/cabin/src/cli/mod.rs76 symbols
crates/cabin-core/src/condition.rs72 symbols
crates/cabin-build/src/planner/tests.rs71 symbols
crates/cabin-system-deps/src/lib.rs67 symbols
crates/cabin-core/src/profile.rs66 symbols
crates/cabin-config/src/parse.rs65 symbols
crates/cabin-core/src/language_standard.rs62 symbols
crates/cabin-core/src/config.rs61 symbols
crates/cabin-workspace/src/loader/tests.rs54 symbols

For agents

$ claude mcp add cabin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact