Buck2
What it is
Buck2 is a build system from Meta for large-scale repositories that bring multiple programming languages together. It uses Starlark rules, a changing dependency graph, and incremental actions to support extensible builds. Its available prelude rules cover C/C++, Erlang, Go, Haskell, Java, Kotlin, OCaml, Python, and Rust, though usability varies by language. Build actions can run remotely through services using Bazel's remote execution API; named compatible services include BuildBarn, BuildBuddy, EngFlow, and NativeLink. Filesystem watching is supported, with optional integration for Meta's Eden virtual filesystem. Rules are hermetic by default and missing dependencies are errors, but local-only build steps are not sandboxed. Buck2 is early-stage, has no stable release tag, and its latest binary tag changes with each repository push. Outside users may encounter rough edges, missing features, or missing toolchains. Source and binaries are available under MIT and Apache-2.0 licenses. The project supports Linux, macOS, self-hosted, and Windows environments.
For and against
For
- Free, with source and binaries under MIT and Apache-2.0.
- Supports incremental actions and a dynamic dependency graph.
- Remote execution works with services using Bazel's API.
- Filesystem watching supports large-repository workflows.
Against
- The project describes it as early-stage.
- No stable release tag is available.
- Local-only build steps are not sandboxed.
- Language support usability varies.
The verdict
Buck2 offers build rules, incremental actions, and remote execution options for large multi-language repositories. Its early-stage status and lack of a stable release tag are important considerations for adoption.
Who it suits
Buck2 suits teams managing large repositories with multiple languages and builds that combine targets across those languages. It is aimed at users comfortable with an early-stage tool and possible gaps in features or toolchains.
Plans and prices
Open source
Buck2 build system · source and binaries available under MIT and Apache-2.0 licenses
Read 30 Sep 2026 · github.com
On the record
- Audience
- Buck2 is designed for large-scale, multi-language repositories and supports composing targets across languages in one build.buck2.build · read 30 Sep 2026
- Features
- Buck2 uses Starlark rules, a dynamic dependency graph, and incremental actions to support extensible builds.buck2.build · read 30 Sep 2026
- Integrations
- The project says BuildBarn, BuildBuddy, EngFlow, and NativeLink work with its distributed compilation support through the Bazel Remote Execution API.github.com · read 30 Sep 2026
- Languages
- The language support table lists C/C++, Erlang, Go, Haskell, Java, Kotlin, OCaml, Python, and Rust with available prelude rules; support usability varies by language.buck2.build · read 30 Sep 2026
- Large repositories
- Buck2 supports filesystem watching and can integrate with Meta's Eden virtual filesystem, though Eden is optional.buck2.build · read 30 Sep 2026
- Maker
- Buck2 is a build system from Meta and the repository says it was designed by Meta.buck2.build · read 30 Sep 2026
- Maturity
- The project describes Buck2 as early-stage and warns that outside users may encounter rough edges, missing features, and missing toolchains.buck2.build · read 30 Sep 2026
- Purpose
- Buck2 is a large-scale, fast, hermetic, multi-language build system and the successor to Buck.buck2.build · read 30 Sep 2026
- Release status
- The repository says Buck2 does not yet have a stable release tag and that its latest binary tag updates on every repository push.github.com · read 30 Sep 2026
- Remote execution
- Buck2 can use services that expose Bazel's remote execution API to run build actions remotely.buck2.build · read 30 Sep 2026
- Security and correctness
- Buck2 rules are hermetic by default and missing dependencies are errors; local-only build steps are not sandboxed, while remote execution is hermetic by design.buck2.build · read 30 Sep 2026
- Support
- The project directs users to report issues through GitHub and provides a community Discord server.buck2.build · read 30 Sep 2026