# bazelbuild/bazel

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bazelbuild-bazel).**

25,145 stars · 4,407 forks · Java · apache-2.0

## Links

- GitHub: https://github.com/bazelbuild/bazel
- Homepage: https://bazel.build
- awesome-repositories: https://awesome-repositories.com/repository/bazelbuild-bazel.md

## Topics

`bazel` `build` `build-system` `correct` `fast` `multi-language` `scalable` `test`

## Description

Bazel is a multi-language build automation engine designed to manage complex dependency graphs and execute compilation tasks for massive codebases. It functions as a hermetic build environment, utilizing sandboxed execution and content-addressable caching to ensure that build artifacts are reproducible and that identical tasks are never re-executed. By modeling dependencies as a directed acyclic graph, the system determines optimal execution order and identifies tasks that can run in parallel.

The project distinguishes itself through its support for distributed build execution, allowing resource-intensive compilation and testing to be offloaded to remote computing clusters. It further optimizes development cycles by employing persistent worker processes that keep tools loaded in memory, eliminating the overhead of repeated initialization. Users can inspect and analyze project structures through a specialized query language, which provides deep visibility into dependency relationships and metadata.

Beyond its core execution model, the system provides comprehensive tools for managing external dependencies across diverse programming languages and maintaining build pipeline observability. It offers granular control over build semantics, execution strategies, and test environments, enabling teams to scale their development workflows while maintaining consistent performance. The project includes extensive command-line documentation and configuration references to assist in managing build tasks and verifying project states.

## Tags

### Development Tools & Productivity

- [Build Automation Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-systems.md) — Managing complex dependency graphs and build processes for massive codebases to ensure consistent, reproducible, and efficient software delivery.
- [Build Automation Engines](https://awesome-repositories.com/f/development-tools-productivity/build-automation-engines.md) — Manages complex dependency graphs and build processes to ensure consistent and reproducible software delivery.
- [Build Orchestration](https://awesome-repositories.com/f/development-tools-productivity/build-orchestration.md) — Models build dependencies as a directed acyclic graph to determine optimal execution order and parallelization.
- [Build Caching](https://awesome-repositories.com/f/development-tools-productivity/build-caching.md) — Stores and retrieves build results using cryptographic hashes to avoid redundant work.
- [Incremental Build Optimizers](https://awesome-repositories.com/f/development-tools-productivity/incremental-build-optimizers.md) — Accelerates development cycles by caching previous results and only re-executing tasks affected by code changes.
- [Persistent Build Workers](https://awesome-repositories.com/f/development-tools-productivity/persistent-build-workers.md) — Maintains long-lived background processes to eliminate the overhead of repeatedly initializing compilers.
- [Build Graph Query Engines](https://awesome-repositories.com/f/development-tools-productivity/build-graph-query-engines.md) — Inspects dependency relationships and extracts metadata using a specialized query language. ([source](https://bazel.build/docs))
- [Dependency Analysis Tools](https://awesome-repositories.com/f/development-tools-productivity/dependency-analysis-tools.md) — Provides a specialized language to inspect project structures and analyze dependency relationships.
- [Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers.md) — Integrates and versions third-party libraries across diverse programming languages within a unified configuration.
- [Build Configuration Languages](https://awesome-repositories.com/f/development-tools-productivity/build-configuration-languages.md) — Defines compilation modes and target architectures through standardized configuration files. ([source](https://bazel.build/docs/user-manual))
- [Build Performance Optimizers](https://awesome-repositories.com/f/development-tools-productivity/build-performance-optimizers.md) — Improves iteration speed by refining dependency graphs and leveraging caching mechanisms. ([source](https://bazel.build/docs))

### Programming Languages & Runtimes

- [Polyglot Build Engines](https://awesome-repositories.com/f/programming-languages-runtimes/polyglot-build-engines.md) — A build automation engine that manages complex dependency graphs and executes compilation tasks across diverse programming languages and platforms.

### Security & Cryptography

- [Hermetic Build Environments](https://awesome-repositories.com/f/security-cryptography/hermetic-build-environments.md) — Ensures reproducible software artifacts by strictly controlling input dependencies and isolating build actions from host state.
- [Sandboxed Execution Environments](https://awesome-repositories.com/f/security-cryptography/sandboxed-execution-environments.md) — Isolates build actions in sandboxed environments to prevent hidden dependencies and ensure reproducibility.

### DevOps & Infrastructure

- [Distributed Build Systems](https://awesome-repositories.com/f/devops-infrastructure/distributed-build-systems.md) — Offloads resource-intensive compilation and testing tasks to remote computing clusters to reduce build times.
- [Remote Execution Protocols](https://awesome-repositories.com/f/devops-infrastructure/remote-execution-protocols.md) — Offloads resource-intensive build tasks to distributed computing clusters via a standardized protocol.

### Testing & Quality Assurance

- [Automated Test Runners](https://awesome-repositories.com/f/testing-quality-assurance/automated-test-runners.md) — Executes automated tests with custom environment settings while leveraging intelligent caching. ([source](https://bazel.build/docs/user-manual))

### System Administration & Monitoring

- [Pipeline Observability Tools](https://awesome-repositories.com/f/system-administration-monitoring/pipeline-observability-tools.md) — Streams structured progress data to monitor build performance and identify bottlenecks.
