Buck2
lastmod 2023-05-26created 2023-04-102 edits
Meta open-sources its new Buck2 build system
Features
- A faster, more efficient large-scale build system written in Rust
- Shares some common ground with Buck1 and Bazel, but is more than 2x faster than Buck1 (already handling over 1 million builds a day inside Meta)
- Fully separates the core from the language rules. Improves parallel processing and integrates with remote execution and virtual file systems
- Design principles
- The build system core is designed separately so it knows nothing about language-specific rules
- The core is developed in Rust, and the language rules are written in Starlark (a Dialect of Python)
- The build system runs on a "single incremental dependency graph"
- The rule API is designed to include advanced features for performance
- The open-source release is nearly identical to the internal version
- Written to integrate with remote execution. Uses the same API as Bazel, with remote execution tested on Buildbarn/EngFlow, etc.
- Integrates with virtual file systems. Supports a Sapling-based file system (EdenFS)