トップ OSS紹介 Bazel

Bazel

NRIのOpenStandiaが提供するBazel最新情報

バージョンアップ情報

Bazel情報

Bazelとは

Bazel(バゼル)は、Google が社内開発に使用していた独自のビルドツールをオープンソース化したプロダクトです。
ビルドツールとは、ソフトウェアの構築、テストを自動化することにより開発効率を高めることが出来るツールです。
代表的なビルドツールとしては make、maven、gradle が挙げられます。
ビルドのための手続きは Python の方言であるStarlark と呼ばれるスクリプト言語で記述します。

主な特徴

  • ビルドとテストの高速化

高度なローカルキャッシングと分散キャッシング、最適化された依存関係分析、および並列実行、インクリメンタルビルドにより、高速に必要な物だけビルドすることが出来ます。

  • 複数の言語、環境に対応
    C++、Java、Kotlin、Python、Go、Rust

BazelはWindows、macOS、Linux で動作し、Java、C++、Android、iOS、Goなどの様々な言語プラットフォームを対象としたテスト及びビルドが行えます。

  • スケーラブル

継続的インテグレーションシステムや、複数のリポジトリまたは巨大なサイズのコードにも対応可能です。

  • ニーズに合わせて拡張可能

コミュニティにより作成されたルールを追加することにより、対応する言語やプラットフォームを拡張することが出来ます。ルールとは Bazel 上での一連のアクションを定義したものです。

現在、推奨されているルール

  • Android
  • C / C++
  • Docker
  • Go
  • Haskell
  • Java
  • JavaScript / NodeJS
  • Kubernetes
  • Maven dependency management
  • Objective C
  • Package building
  • Protocol Buffers
  • Python
  • Scala
  • Shell
  • Webtesting (Webdriver)

類似プロダクト

Bazel 以外には以下のようなビルドツールがあります。

  • make
  • apache ant
  • apache maven
  • gradle
  • Pants
  • Buck
  • Please

Bazelの仕組み

Bazelは、ワークスペースと呼ばれるディレクトリ階層に配置されたソースコードよりソフトウェアのビルドを行います。
ビルドはパッケージ単位で行われます。

WORKSPACEファイル:ワークスペースのルートディレクトリに置かれます。
BUILDファイル:パッケージはBUILDファイルで定義します。

Bazel の公式サイトには C++、Java、Android、iOSのチュートリアルが公開されています。

動作環境

Bazelは以下の環境にインストールできます。

公式パッケージ

  • Ubuntu Linux
  • macOS
  • Windows

コミュニティがサポートするパッケージ

  • Arch Linux
  • CentOS 6
  • Debian
  • FreeBSD
  • Gentoo
  • Homebrew
  • Linuxbrew
  • Nixpkgs
  • openSUSE
  • Parabola
  • Scoop
  • Raspberry Pi

コミュニティがサポートするアーキテクチャ

  • ppc64le

Bazelのライセンス

Bazel は、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • jenkins

    jenkins

    ジェンキンス。ソフトウェア開発プロセスの「ビルド」「デプロイ」「テスト」などの作業自動化/効率化を支援するオープンソースの継続的インテグレーション(CI)ツールです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。