Buck Build System

Buck Build System

buck.build

1

About this website

Buck is a build system developed and used by Facebook (now Meta), designed to build small, reproducible, and fast builds for large-scale monorepo projects. Created at Facebook by the Buck team in 2013, Buck has over 8,700 stars as of 2026 and has influenced the design of subsequent build systems including Buck2 and Bazel. Key features include: build rule graph (BUCK files define build rules in Starlark/Python-like syntax, creating a dependency graph that Buck uses to determine build order and parallelize execution), aggressive parallelism (maximizing CPU utilization by building independent targets in parallel with fine-grained dependency tracking), aggressive caching (content-addressable caching keyed on rule inputs and command hashes, enabling cache hits across machines and teams via remote cache servers), incremental builds (only rebuilding rules whose inputs have changed, with content-based change detection rather than timestamp-based), multi-language support (Java, C, C++, Python, Android, iOS, OCaml, Rust, Go, and custom build rules), Android and iOS support (building APKs, AARs, and Xcode projects with dependency management), remote execution (distributing build actions across remote build clusters for massive scale), sandboxed execution (isolating build actions in temporary directories to prevent hidden dependencies), flakiness detection (detecting and reporting non-deterministic build rules), IDE integration (generating IntelliJ and Xcode project files from BUCK definitions), flavor system (applying flavors like debug, release, and platform-specific variants to build rules), and Buck2 successor (Meta's Rust rewrite with Starlark evaluation and virtual file system, achieving 10x faster incremental builds).

Tags & Categories

Categories

Tags

Statistics

1
Views
0
Clicks
0
Like
0
Dislike

Comments

Log In to post a comment

No comments yet. Be the first!