Bzlmod: the package manager for Bazel
10-27, 17:10–17:35 (Europe/Berlin), Main stage

Bazel is the open source build system from Google, which works for multiple languages on multiple platforms. While the original internal build system was designed around Google's monorepo, Bazel has to handle the external dependencies challenges in the open source world. In our session, we will reveal the history of managing external dependencies with Bazel and how Bzlmod was developed as the package manager for the Bazel ecosystem.


Our session will cover the following aspects:

  • External Dependencies in Bazel: How external dependencies are introduced with the WORKSPACE file in Bazel, which derives from a build system that was originally designed for monorepo.

  • The Birth of Bzlmod: Why the WORKSPACE approach had issues and a brief history of how Bzlmod came to be the solution.

  • Bazel Modules and Bazel Central Registration: How Bazel projects can declare external dependencies in MODULE.bazel file, how Bzlmod resolves dependencies and how to publish Bazel modules in the Bazel Central Registry.

  • Module Extensions and Package Manager Integrations: What if users need dependencies that are not Bazel modules? We'll detail how Bzlmod can handle external dependencies from other package managers in language-specific ecosystems like Maven, Cargo, PyPi, and Go.

  • Present and Future of Bzlmod: We'll share how Bzlmod, an optional feature in Bazel 6, is set to become the standard for managing external dependencies in future Bazel versions.

Software engineer at Google, I have been working on Bazel since 2016.