This is a monorepo setup with Nix environment and Buck2 build system.
-
Activate the Nix environment:
direnv allow
This will automatically activate the Nix shell with all required tools.
-
Available tools:
git- Version controljujutsu- Modern Git-compatible VCSnix- Package managerbuck2- Build systemgo- Go programming languagerust- Rust programming language (includingcargo,rust-analyzer,rustfmt,clippy)python3- Python programming languagellvm- LLVM toolchain (includingclang,clang++)
Build any target with:
buck2 build //path/to/targetRun any binary target with:
buck2 run //path/to/targetProjects can be organized anywhere in the repository. Common patterns include:
//experimental/- For experimental and proof-of-concept projects//apps/- For applications//libs/- For shared libraries//tools/- For development tools
- Create a directory for your project
- Add a
rules.starfile with your target definitions - Add your source files
- Build with
buck2 build //your-project-path
The Nix environment provides a consistent development environment across different machines. All dependencies are managed through the flake.nix file.