Meta* introduced the Buck2 assembly system

Short description

Meta* has launched Buck2, a system designed to collect projects from large repositories. The new version is rewritten in Rust code, doubling the collection speed. Buck2 supports building projects in multiple languages, including C++, Python, Rust, and others that Meta* uses. It also supports building projects written in several languages. Buck2 uses a single incremental dependency graph to avoid errors. The company has published the code of the assembly system on GitHub, documentation, an API manual, and additional materials on its official website. *Meta Platforms is recognized as an extremist organization whose activities are prohibited in Russia.

Meta* introduced the Buck2 assembly system

Meta* introduced the Buck2 system, designed to collect projects from large repositories. In the new version, the company abandoned Java and rewrote the Rust code. At the same time, Meta* said that the collection speed has doubled.

The Buck2 system itself supports building projects in C++, Python, Rust, Kotlin, Swift, Objective-C, Haskell, OCaml and other languages ​​that Meta* uses in the development of its products. Buck2 can also collect projects written in several languages. For example, the main Python module can use a Rust library that depends on a C library. The developers claim support for building on multiple remote servers.

The main innovations in Buck2:

  • the core of the system is now associated with the rules for supporting programming languages. The Starlark language is used to write the rules, and it and the auxiliary tools are implemented using Rust;

  • Buck2 is fully compatible with Google’s Bazel build system, EngFlow and Buildbarn;

  • the code of the assembly system that Meta* uses in its work has been published on GitHub. The differences are only in the versions of compilers and other tools;

  • support for virtual file systems has been implemented. Announced support for VFS based on Git LFS and EdenFS;

  • Buck2 uses a single incremental dependency graph. This avoids the errors that occur in Buck1 and Bazel.

The assembly system code is available on GitHub, and the company has published documentation, an API manual, and additional materials on the official website.

Meta Platforms*, as well as Facebook** and Instagram** owned by it:
* recognized as an extremist organization, its activities are prohibited in Russia;
** prohibited in Russia.

Related posts