Buck2
buck2.build
What it is
Buck2 is a free build system from Meta for large-scale repositories that combine multiple programming languages. It uses Starlark rules, a dynamic dependency graph, and incremental actions to support extensible builds. Its language table lists prelude rules for C/C++, Erlang, Go, Haskell, Java, Kotlin, OCaml, Python, and Rust, though usability varies by language. Build actions can run remotely through services exposing Bazel's remote execution API; the project lists BuildBarn, BuildBuddy, EngFlow, and NativeLink as compatible with its distributed compilation support. Buck2 supports filesystem watching and can integrate with Meta's optional Eden virtual filesystem. Rules are hermetic by default and missing dependencies are errors, but local-only build steps are not sandboxed. The project describes Buck2 as early-stage and says it has no stable release tag; its latest binary tag changes with repository pushes. It warns that outside users may encounter rough edges, missing features, and missing toolchains. Source and binaries are available under MIT and Apache-2.0 licenses. The project directs users to GitHub for issue reports and offers a community Discord server.
Spec sheet
- Purpose
- Buck2 is a large-scale, fast, hermetic, multi-language build system and the successor to Buck.Read 30 Sep 2026 · buck2.build
- Audience
- Buck2 is designed for large-scale, multi-language repositories and supports composing targets across languages in one build.Read 30 Sep 2026 · buck2.build
- Platforms
- The installation guide documents building from source on Linux, macOS, and Windows, and notes prebuilt protoc support on those systems.Read 30 Sep 2026 · buck2.build
- Integrations
- The project says BuildBarn, BuildBuddy, EngFlow, and NativeLink work with its distributed compilation support through the Bazel Remote Execution API.Read 30 Sep 2026 · github.com
- Support
- The project directs users to report issues through GitHub and provides a community Discord server.Read 30 Sep 2026 · buck2.build
- Maker
- Buck2 is a build system from Meta and the repository says it was designed by Meta.Read 30 Sep 2026 · buck2.build
- Features
- Buck2 uses Starlark rules, a dynamic dependency graph, and incremental actions to support extensible builds.Read 30 Sep 2026 · buck2.build
- 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.Read 30 Sep 2026 · buck2.build
- Large repositories
- Buck2 supports filesystem watching and can integrate with Meta's Eden virtual filesystem, though Eden is optional.Read 30 Sep 2026 · buck2.build
- Maturity
- The project describes Buck2 as early-stage and warns that outside users may encounter rough edges, missing features, and missing toolchains.Read 30 Sep 2026 · buck2.build
- 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.Read 30 Sep 2026 · github.com
- Remote execution
- Buck2 can use services that expose Bazel's remote execution API to run build actions remotely.Read 30 Sep 2026 · buck2.build
- 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.Read 30 Sep 2026 · buck2.build
Plans and prices
Strong points and limits
Strong points
- Supports multiple languages in one build
- Can use Bazel remote execution API services
- Rules are hermetic by default
- Source and binaries are free
Limits
- Early-stage project may have rough edges
- No stable release tag yet
- Language support usability varies
- Local-only build steps are not sandboxed
Who it suits
Buck2 suits teams working on large-scale, multi-language repositories that need to compose targets across languages. Its early-stage status makes it a less settled option for users who need stable releases or complete toolchain coverage.
Verdict
Buck2 offers extensible builds for large, multi-language repositories, including remote execution options. Its early-stage status and changing binary tag are important considerations for adoption.
Where Specifiction places it
- Build Automation Software#12 of 428.1
- Monorepo Management Tools#13 of 338.0
- Game Build Automation Software#21 of 438.0