Buck (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Buck is a build system developed and used by Facebook. It was designed for building small, reusable modules consisting of code and resources within a monorepo,[1] and supports a variety of languages on many platforms. Buck is licensed under the Apache License 2.0.[2]

Buck requires explicit declaration of dependencies and enforces that by use of a symbolic link tree. Since all dependencies are explicit and Buck has a directed acyclic graph of all source files and build targets, Buck can perform incremental recompilation only building targets downstream of files that have changed. Buck computes a key for each target that is a hash of the contents all the files it depends on. It stores a mapping from that key to the built target in a build cache. Assuming that all targets are deterministic functions of the contents of their dependencies you can share this build cache between developers and CI as Buck supports a HTTP Cache API.

See also[edit]


  1. ^ "Overview". Buck: a build tool. Retrieved 27 July 2018. Buck is designed for building multiple deliverables from a single repository (a monorepo) rather than across multiple repositories
  2. ^ "buck/license". April 29, 2013. Retrieved October 20, 2017.

External links[edit]