Mar 29, 2021

ELI5: Buck - Modular Build System

cover

By Dmitry Vinnik

Originally posted here.

In this post, we explain Buck, a high-performance build tool, in a way that is super simple to understand (or as it's commonly known online, ELI5). If you're interested in learning by watching or listening, check out a video about this open source project on our Facebook Open Source YouTube channel.

Why Buck?

It's a well-known fact that managing Android library projects usually require a slew of duplicated manifest and build files. At Facebook's scale, maintaining these projects becomes an unmanageable feat. Imagine having to manually update every single line of code across tens or hundreds of files in your Android project. This redundancy opens up the potential for bugs and stale data. Plus, repetition makes development tedious and cumbersome, bringing developer productivity down. We created Buck to address these issues.

Watch the video

Buck is a build tool that supports multiple programming languages. Although Buck was originally created for the Android ecosystem, it now works across many platforms such as iOS, .NET and others. This tool was designed for fast iteration allowing developers to compile and run their changes quickly.

Buck is optimized for incremental builds. This approach means that only files that were changed get recompiled while other artifacts remain intact. It vastly simplifies the build process as developers only need to rebuild what they are currently working on, which lets you work more productively and efficiently as a developer.

To further improve the developer experience, Buck allows for easy integration with IDEs of your choice, making you and your team more productive.

About the ELI5 series

In a series of short videos (~1 min in length), one of our Developer Advocates on the Facebook Open Source team explains a Facebook open source project in a way that is easy to understand and use.

We will write an accompanying blog post (like the one you're reading right now) for each of these videos, which you can find on our YouTube channel.

To learn more about Facebook Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter and Facebook.

Interested in working with open source at Facebook? Check out our open source-related job postings on our career page by taking this quick survey.