Building Erlang with Buck2
summary
WhatsApp migrates its mono‑repo Erlang build to Buck2 and open‑sources Erlang rules in Starlark; rules require explicit inputs and favor hermetic, remote‑first execution. Large repo (millions of lines, thousands of files) builds in full repo builds: 2 min cached / 3.5 min uncached versus ~15+ min with rebar3; speed comes from global remote cache and fine‑grained incrementality plus hybrid remote/local execution. Interop lets a project include C/C++ NIFs as NIFs built as C++ targets and run tests, though the test runner is currently basic.
AI-written summary · about
chapters (16)
- 0:00Intro
- 0:47Why we need another build system
- 1:35Problems with other build systems
- 3:47Large projects
- 4:37Buck2 library
- 4:54Buck2 evolution
- 7:17Faster builds
- 9:31Practice
- 10:22Rules
- 11:43Other Rules
- 12:20Language Interoperability
- 13:48How well does it work
- 15:27Disclaimer
- 16:07What you need
- 16:45Demo
- 19:07Questions
related talks
40mOpen Riak how we gained from leaning on the BEAM
49mAn Introduction to Erlang From behind the Trenches
44mIdioms for Building Fault-tolerant Applications with Elixir
41mIdioms for building fault-tolerant applications with Elixir
40mBuilding blocks and How to Use Them: A MongooseIM Case Study
34mThe Future of Erlang LS
52mRefactorErl supports your Daily Work!
23meqWAlizer - Scaling Erlang development at WhatsApp with static typing
