Reposted from Google's Open Source blog.
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. 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.
Our beta release provides:
- Binary releases for Linux and OS X.
- Support for building and testing C++, Java, Python, Rust, and more.
- Support for building Docker images, Android apps, and iOS apps.
- Support for using libraries from Maven, GitHub, and more.
- A robust API for adding your own build rules.
Check out the tutorial app to see a working example using several languages.
We still have a long way to go. Looking ahead towards our 1.0.0 release, we plan to provide Windows support, distributed caching, and Go support among other features. See our roadmap for more details and follow our blog or Twitter account for regular updates. Feel free to contact us with questions or feedback on the mailing list or IRC (#bazel on freenode).
By Jeff Cox, Bazel team