# [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://github.com/bazelbuild/rules_apple/blob/master/doc/tutorials/ios-app.md)

## 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)
  * [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)
