facebook/buck2

Build system, successor to Buck

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 8 seconds ago
Added to GitGenius on August 8th, 2026
Created on January 21st, 2022
Open Issues & Pull Requests: 387 (+0)
GitHub issues: Enabled
Number of forks: 395
Total Stargazers: 4,417 (+0)
Total Subscribers: 56 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 29.4 hours
Mean response time: 27.9 days
90th percentile: 44.9 days
Tracked items: 290

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 71% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "buck2 development" is answered fastest, typically in about 2 hours, while "python" waits about 10 days. Almost all tracked open issues have seen activity in the last three months. Only 3% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 241
New in 7 days: 5
Closed in 7 days: 0
Avg open age: 627 days
Stale 30+ days: 228
Stale 90+ days: 118

Recent activity

Opened in 7 days: 4
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • prelude (59)
  • bug (58)
  • enhancement (49)
  • documentation (48)
  • UX (22)
  • buck2 development (17)
  • remote execution (17)
  • bxl (14)

Detailed Description

Buck2 is a fast, hermetic, multi-language build system written in Rust and designed as the successor to Meta's original Buck build system. The project emphasizes three core design principles: speed through critical path calculation and minimal overhead, hermeticity through enforced input declaration when using Remote Execution, and multi-language support with consistent user experience across different programming languages and their complex inter-dependencies. According to the README, Buck2 achieves up to 2x faster performance than Buck1 in practice, though the project notes that comprehensive comparisons with systems like Bazel remain to be performed.

The system is designed to handle ultra-large repositories through filesystem virtualization and change detection, with a language-agnostic core executable that keeps the API small. Language support, including C and C++, is implemented as libraries rather than built into the core. Buck2 supports distributed compilation using the Remote Execution API compatible with existing solutions like BuildBarn, BuildBuddy, EngFlow, and NativeLink. The project includes Buck Extension Language (BXL) for self-introspection of the build system, enabling automation tools to inspect and run actions in the build graph, which supports features like language servers and compilation database generation.

The repository shows active development with significant community engagement. The project shares contributors with golang/go, rust-lang/rust, and angular/angular, suggesting cross-pollination with major language and framework ecosystems.

Buck2 currently lacks a stable release tag, with the project explicitly warning that it does not have stable binaries at this time. However, the codebase is battle-tested through extensive internal use at Meta on vast codebases daily, with the buck2-prelude directory containing the same code used internally for all Meta builds. The project recommends tracking the latest HEAD version for bug reporting and regression detection. Users can obtain Buck2 through bi-monthly release binaries, the latest tag updated on every push, or by compiling from source. The project is dual-licensed under MIT and Apache-2.0 licenses.

The repository acknowledges that outside consumers will encounter rough edges, with several features still in progress and some toolchains from Buck1 missing. Despite this pre-release status, the project actively solicits feedback through GitHub issues and questions, positioning itself as a modern build system informed by contemporary theory of incremental computation and designed to address limitations in existing build tools when handling polyglot codebases and large-scale development scenarios.