Jump to content

Buck (software)

From Alfawiki
Adapted from the English Wikipedia article Buck (software), available under CC BY-SA 4.0Updated 9 August 2025
Buck
Company typeSoftware
IndustrySoftware development
Founded2013; 13 years ago (2013)
FounderMeta Platforms, Inc.
ProductsBuild system supporting multiple programming languages
OwnerMeta Platforms, Inc.

Buck is a versatile build system supporting multiple programming languages, created and utilized by Meta Platforms, Inc. It is tailored for constructing small, reusable components within a monorepo environment. The system accommodates a variety of languages such as C++, Swift, Unix Shell, Java, Kotlin, Python, Lua, OCaml, Rust, and Go. Buck compiles binary outputs compatible with different platforms including iOS, Android, .NET, and the Java virtual machine (JVM). The original Buck1 version is distributed under the Apache License 2.0, whereas Buck2 offers licensing options under either the MIT or Apache 2.0.

The build process in Buck mandates explicit specification of dependencies. It constructs a directed acyclic graph (DAG) representing all source files and build targets, which facilitates incremental recompilation by rebuilding only those targets impacted by recent modifications. To enhance build efficiency, Buck calculates a unique hash for each target derived from the contents of its dependencies and caches this data within a build cache.

History

Buck1 was introduced in 2013, incorporating features that enable sharing build outputs among developers and continuous integration (CI) systems through compatibility with an HTTP Cache API.

In 2023, the release of Buck2 marked a significant advancement, delivering build speeds approximately twice as fast as its predecessor. This version’s core was rewritten using the Rust language instead of Java, and its build rules are externally defined in Starlark—the same language employed by the Bazel build tool.

See also

External links