Jump to content
Wikipedia The Free Encyclopedia

Buck (software)

From Wikipedia, the free encyclopedia
Build system developed and used by Meta Platforms
Buck
Original author Michael Bolin
Developers Meta Platforms, Inc.
Initial releaseApril 17, 2013; 12 years ago (2013年04月17日)[1]
Stable release
2021年01月12日.01 / January 12, 2021; 4 years ago (2021年01月12日)[2]
Repository
Written inBuck1 – Java
Buck2 – Rust
Operating system Cross-platform
License MIT [3] or
Apache License 2.0[4]
Websitebuck2.build  Edit this on Wikidata

Buck is a multi-language build system developed and used by Meta Platforms, Inc. It was designed for building small, reusable modules consisting of code and resources within a monorepo.[5] It supports many programming languages, including C++, Swift, Unix Shell, Java, Kotlin, Python, Lua, OCaml, Rust and Go. It can produce binary outputs for a variety of target platforms including iOS, Android, .NET, and Java virtual machine (VM) runtime systems. Licensing for Buck1 is under Apache License 2.0, while Buck2 is under either MIT or Apache 2.0.[3] [4]

Buck requires the explicit declaration of dependencies. Because all dependencies are explicit and Buck has a directed acyclic graph of all source files and build targets, Buck can perform incremental recompilation, only rebuilding targets downstream of files that have changed. Buck computes a key for each target that is a hash of the contents of the files it depends on. It stores a mapping from that key to the build target in a build cache.

History

[edit ]

In 2013, Buck1 was released. One of the key features was the ability to share build results between multiple developers and continuous integration (CI), as Buck1 supports a HTTP Cache API.[6]

In 2023, Buck2 was released, claiming that builds are 2x as fast as compared to Buck1. One of the largest changes from Buck1 is that the core is written in Rust instead of Java, and rules are written outside the core in Starlark (the language created for the Bazel build system).[7]

See also

[edit ]

References

[edit ]
  1. ^ Bolin, Michael (May 14, 2013). "Buck: How we build Android apps at Facebook". Notes. Facebook . Facebook Engineering. Retrieved 2019年07月16日.
  2. ^ "Releases: facebook/buck". GitHub.
  3. ^ a b "buck/license-mit". GitHub . December 1, 2022. Retrieved 2023年04月19日.
  4. ^ a b "buck/license-apache". GitHub . December 1, 2022. Retrieved 2023年04月19日.
  5. ^ "Overview". Buck: a build tool. Retrieved 2018年07月16日. Buck is designed to build multiple deliverables from a single repository—that is, a monorepo—rather than from multiple repositories
  6. ^ Bluestein, Nofar. "Introducing Cache Intelligence for Faster, More Efficient Continuous Integration Builds | Harness". Harness.io. Retrieved 2023年06月06日.
  7. ^ Krill, Paul (2023年04月06日). "Meta open-sources 'significantly faster' build system". InfoWorld. Retrieved 2023年06月06日.
[edit ]
Products
and services
Facebook
Instagram
Hardware
Other
Former
People
Founders
Board
Current
Former
Executive
officers
Current
Former
Oversight
Board
Members
Board of
Trustees
Former
members
Notable
employees
Current
Former
Open source
Mass media
Concepts
Business
Lists
Related


Stub icon

This programming-tool-related article is a stub. You can help Wikipedia by expanding it.

AltStyle によって変換されたページ (->オリジナル) /