- Rust 91.4%
- TypeScript 4.9%
- JavaScript 1.8%
- Starlark 0.7%
- HTML 0.6%
- Other 0.6%
| .forgejo/workflows | ||
| CAM | ||
| common | ||
| docs | ||
| interpreter | ||
| provisioning | ||
| third-party/rust | ||
| toolchains | ||
| website | ||
| .buckconfig | ||
| .gitignore | ||
| .python-version | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| main.py | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
| zensical.toml | ||
KGROO
The KGROO monorepo
Build
Buck2 is the build system for the entire monorepo. All builds and tests go through Buck2 — Cargo is never the build path. The checked-in Cargo.toml manifests exist only so rust-analyzer and other IDE tooling work; they are a development-ergonomics artifact, not a build artifact.
Toolchains come from the host via the Buck2 prelude's system toolchains (toolchains/BUCK): buck2, rustc/cargo, rustfmt, and python3 on $PATH. The Rust toolchain is not version-pinned; anything supporting edition 2024 works.
buck2 build //... # build everything
buck2 test //... # test everything
buck2 test //common:common-tests # one crate's tests, by target
Third-party Rust dependencies
Third-party crates are managed by reindeer in third-party/rust/: reindeer.toml plus a Cargo.toml listing the deps, from which reindeer generates the BUCK file (crates fetched from crates.io via http_archive, not vendored).
To add or update a dependency:
# 1. Edit third-party/rust/Cargo.toml (and the consuming crate's Cargo.toml for rust-analyzer)
# 2. Regenerate third-party/rust/BUCK
reindeer --third-party-dir third-party/rust buckify
# 3. Add the dep to the consuming crate's BUCK `deps = [...]`
A dependency that exists in only Cargo.toml or only BUCK is a bug — both must be updated together.