# [Bazel](https://bazel.build)

*{Fast, Correct} - Choose two*

Build and test software of any size, quickly and reliably.

* **Speed up your builds and tests**:
  Bazel rebuilds only what is necessary.
  With advanced local and distributed caching, optimized dependency analysis and
  parallel execution, you get fast and incremental builds.

* **One tool, multiple languages**: Build and test Java, C++, Android, iOS, Go,
  and a wide variety of other language platforms. Bazel runs on Windows, macOS,
  and Linux.

* **Scalable**: Bazel helps you scale your organization, codebase, and
  continuous integration solution. It handles codebases of any size, in multiple
  repositories or a huge monorepo.

* **Extensible to your needs**: Easily add support for new languages and
  platforms with Bazel's familiar extension language. Share and re-use language
  rules written by the growing Bazel community.

## Getting Started

  * [Install Bazel](https://bazel.build/install)
  * [Get started with Bazel](https://bazel.build/start)
  * Follow our tutorials:

    - [Build C++](https://bazel.build/tutorials/cpp)
    - [Build Java](https://bazel.build/tutorials/java)
    - [Android](https://bazel.build/tutorials/android-app)
    - [iOS](https://bazel.build/tutorials/ios-app)

## Documentation

  * [Bazel command line](https://bazel.build/docs/user-manual)
  * [Rule reference](https://bazel.build/reference/be/overview)
  * [Use the query command](https://bazel.build/reference/query)
  * [Extend Bazel](https://bazel.build/rules/concepts)
  * [Write tests](https://bazel.build/reference/test-encyclopedia)
  * [Roadmap](https://bazel.build/community/roadmaps)
  * [Who is using Bazel?](https://bazel.build/community/users)

## Reporting a Vulnerability

To report a security issue, please email security@bazel.build with a description
of the issue, the steps you took to create the issue, affected versions, and, if
known, mitigations for the issue. Our vulnerability management team will respond
within 3 working days of your email. If the issue is confirmed as a
vulnerability, we will open a Security Advisory. This project follows a 90 day
disclosure timeline.

## Contributing to Bazel

See [CONTRIBUTING.md](CONTRIBUTING.md)

[![Build status](https://badge.buildkite.com/1fd282f8ad98c3fb10758a821e5313576356709dd7d11e9618.svg?status=master)](https://buildkite.com/bazel/bazel-bazel)
