Google Bazel – Patrick Mahony

Bazel, a tool used internally at Google to build software quickly, was made open-source back in March to advance its development. Google has now released Bazel under beta to allow engineers to build server and client software for Android and iOS whilst avoiding some of the usual issues.

One large caveat, however, is that Bazel is only available for Linux and OS X for the time being – with a Windows version being made “a priority” and due to make the cut before the software graduates out of beta.

A roadmap has also been placed live which features the company’s plans

Google has used Bazel extensively within the company for heavy-duty and “misson-critical” infrastructure services – along with public web apps – but the company notes it can be used for smaller software builds too. Engineers can build Java, C++, Python and Objective-C apps right out of the box using built-in rules.

If you prefer to play by your own rules, you can use the built-in ‘Skylark’ rule framework to develop and share your own build rules to support other platforms and coding languages.

Jeff Cox, from Google’s Bazel team, said: “There are lots of other build systems out there – Maven, Gradle, Ant, Make, and CMake just to name a few. So what’s special about Bazel? Bazel is what we use to build the large majority of software within Google. As such, it has been designed to handle build problems specific to Google’s development environment, including a massive, shared code repository in which all software is built from source, a heavy emphasis on automated testing and release processes, and language and platform diversity.”

He continues: “Bazel isn’t right for every use case, but we believe that we’re not the only ones facing these kinds of problems and we want to contribute what we’ve learned so far to the larger developer community.”

The beta release of Bazel provides:

Google has a tutorial app up on their website to provide examples of Bazel working across several languages. Aroadmap has also been placed live which features the company’s plans to support Windows, distributed caching, and the Go language before the 1.0 release.

For more information and to get started with Bazel, head to the project website here.