Corpus status¶
Snapshot as of 2026-06-07. Regenerate with uv run python tools/status-report.py.
At a glance¶
- 365 recipes ship green today. Every one of them builds from source under
make dogfoodagainst the Punix store — no Homebrew bridge, no prebuilt binary toolchain, no DYLD-shim tricks at runtime. See the full list, grouped by topic. - 79 recipes have been attempted but don't yet ship. Most are blocked on one of a small handful of recurring patterns (host Swift 6 / Xcode 16, Perl-CPAN multi-source bundles,
@N-version handling). See blockers.md for what each one needs.
What this means in practice¶
If you punix install <name> for anything in working.md, it will build from source, sandbox itself in the content-addressed store under ~/.punix/store/, and link a binary into your profile. No brew invocations under the hood. No background brew update that breaks last week's working setup.
If the package you want is in blockers.md, each entry names the failure class and the shape the fix takes — so a contribution lands in the right layer (the brew→PCL translator, one of the std.* recipe classes, or as a hand-written recipe in packages/official/).
If it's in neither list, we simply haven't tried yet. Open an issue, or run uv run python tools/migrate-brew.py against the brew formula yourself.
Categories at a glance¶
| Category | Recipes |
|---|---|
| Shell & Terminal | 6 |
| Editors | 2 |
| Version Control | 16 |
| Build Tools & Compilers | 41 |
| Languages & Runtimes | 21 |
| Container & Orchestration | 20 |
| Cloud CLIs | 16 |
| Networking | 20 |
| Security & Cryptography | 20 |
| Databases | 10 |
| Image, Video & Media | 20 |
| Compression & Archives | 8 |
| Text Processing | 13 |
| Documentation & Markup | 9 |
| Python Ecosystem | 20 |
| Rust Ecosystem | 36 |
| Go Ecosystem | 32 |
| System & Process Utilities | 23 |
| Foundational Libraries | 32 |
| Total | 365 |
How recipes get into the corpus¶
Every recipe in packages/official/ was either auto-translated from a Homebrew formula via tools/migrate-brew.py (the translator matches cargo, go, npm, autotools, cmake, meson, swift, pip, and git-tag source patterns) or hand-written when the source shape didn't fit any pattern. Each recipe records its origin in meta.origin.
The recipe classes themselves live under src/punix/realise/recipes_lib/std/ — std.cargo, std.go, std.cmake, std.autotools, std.meson, std.python_venv, std.swift, std.shell, etc. — and own all the shell mechanics (dep wiring, rpath baking, sandbox setup). Recipes just declare which class they want and pass project-specific flags.
Related¶
- What works at the system level — the engine, store, profile, services, deploy machinery.
- Known limitations — class-by-class list of what the project deliberately doesn't do, what's deferred, and what's a real gap.
- Roadmap — staged plan; where the corpus is heading.