Por que usar o Bazel?

Relatar um problema Conferir código-fonte Por noite · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

O Bazel é rápido, correto e extensível ferramenta de build com testes integrados que oferecem suporte a várias idiomas, repositórios e plataformas em um ecossistema líder do setor.

O Bazel é rápido

O Bazel sabe exatamente de quais arquivos de entrada cada comando de build precisa, evitando trabalho desnecessário, executando novamente apenas quando o conjunto de arquivos de entrada alterados entre cada build. Ela executa comandos de compilação com o máximo de paralelismo possível, seja dentro do mesmo computador ou em nós de compilação remota. Se a estrutura do build permite que ele execute milhares de comandos de compilação ou teste ao mesmo tempo.

Isso é suportado por diversas camadas de armazenamento em cache, na memória, no disco e na farm de criação remota, se disponível. No Google, atingimos sempre taxas de ocorrência em cache ao norte de 99%.

O Bazel está correto

O Bazel garante que seus binários sejam criados somente pelo seu próprio o código-fonte. Ações do Bazel são executadas em sandboxes individuais e faixas dele. cada arquivo de entrada do build, somente e sempre executando novamente o build comandos quando necessário. Isso mantém seus binários atualizados para que o mesmo código-fonte sempre resulta no mesmo binário, bit pouco a pouco.

Diga Goodbyte a invocações intermináveis de make clean e a busca de bugs fantasmas que foram de fato resolvidos no código-fonte, mas nunca foram compilados.

O Bazel é extensível.

Aproveite toda a capacidade do Bazel escrevendo suas próprias regras e macros para personalize o Bazel de acordo com suas necessidades específicas em uma ampla variedade de projetos.

As regras do Bazel são escritas em Starlark, nossa em uma linguagem de programação interna que é um subconjunto do Python. Starlark faz gravação de regras acessível à maioria dos desenvolvedores, além de criar regras que podem ser usados em todo o ecossistema.

Teste integrado

Executor de testes integrado do Bazel sabe e executa apenas os testes que precisam ser executados novamente, usando a execução remota (se disponível) para executá-los em paralelo. Detecte flakes antecipadamente usando o controle remoto para executar um teste milhares de vezes rapidamente.

O Bazel fornece recursos (link em inglês) para fazer upload dos resultados de testes para um local, facilitando a comunicação eficiente dos resultados dos testes, seja na CI ou por desenvolvedores individuais.

Compatível com várias linguagens

O Bazel oferece suporte a várias linguagens de programação comuns, incluindo C++, Java, Kotlin, Python, Go e Rust. É possível criar vários binários (por exemplo, back-end, interface da Web e app para dispositivos móveis) na mesma invocação do Bazel sem serem restrito à ferramenta de build idiomática de uma linguagem.

Suporte a vários repositórios

O Bazel pode coletar código-fonte de vários locais: você não precisa fornecer suas dependências (mas você pode!), você pode apontar o Bazel para o local do código-fonte ou dos artefatos pré-criados (por exemplo, um repositório de código aberto ou Maven Central) e cuida do resto.

Suporte a várias plataformas

O Bazel pode criar projetos simultaneamente para várias plataformas, incluindo Linux, macOS, Windows e Android. Ele também oferece recursos de compilação cruzada para criar código para um e executar o build em outra.

Amplo ecossistema

Líderes do setor adoram o Bazel, criando um de desenvolvedores que usam e contribuem com o Bazel. Encontre ferramentas e serviços e documentação, incluindo ofertas de consultoria e de SaaS. o Bazel pode usar. Conheça extensões como o suporte a linguagens de programação em nossos repositórios de software de código aberto.