Bazel を使用しているユーザー

問題を報告 ソースを表示

このページでは、Bazel の使用が確認されている企業と OSS プロジェクトの一覧を示します。 これは、推奨を保証するものではありません。

Bazel を使用している企業

acqio

Acqio は、中小規模の販売者に決済商品やサービスを提供するフィンテックです。Acqio にはいくつかの monorepos があり、Bazel と Kubernetes を使用して、高速で信頼性の高いマイクロサービスを提供しています。

Adobe

Adobe は、GitOps ドリブンの Kubernetes デプロイを継続的に行うための Bazel ルールをリリースしました。

Asana

Asana は、チームが作業を追跡できるように設計されたウェブおよびモバイルアプリです。元の説明:

Bazel は、Asana のすべてのビルドとテストで信頼性、安定性、速度が向上しています。不適切なキャッシュのためにクリーンアップする必要はなくなりました。

Ascend.io

Ascend は、大規模なデータセット分析のソリューションを提供する Palo Alto のスタートアップです。モットーは「ビッグデータは難しい。作業を簡単にこなせます

ASML

ASML は半導体業界のイノベーション リーダーです。Google は、リソグラフィによってシリコン上にパターンを量産するために、ハードウェア、ソフトウェア、サービスなど、必要とするあらゆるものをチップメーカーに提供しています。

蜜ろう

Beeswax はニューヨークを拠点とするスタートアップで、リアルタイム ビッダーをサービスとして提供しています。Bazel は、Jenkins ベースの継続的インテグレーションと継続的デプロイのフレームワークを支えています。Bazel は非常に高速かつ正確で、多くの言語とプラットフォームで適切にサポートされているため、蜜ろうが Bazel を気に入っています。

ブレインツリー

PayPal の子会社である Braintree は、ウェブサイトとアプリケーションの決済ソリューションを開発しています。内部ビルドの一部に Bazel を使用していますが、Paul Grad は Bazel への切り替えがうまくいった方法を投稿しています。

Canva

Canva は、Bazel を活用して、Java、TypeScript、Scala、Python などの大規模な多言語コードベースを管理しています。Bazel への移行は、開発者とコンピューティング インフラストラクチャの効率を大幅に向上させ、CI ビルドの平均時間が 5 ~ 6 分の 1 に短縮され、現在も高速で再現性のある標準化されたソフトウェア ビルドの基盤となっています。

CarGurus

CarGurus は、世界で最も信頼性と透明性の高い自動車マーケットプレイスを構築することを使命としており、Bazel を使用して多言語モノレポを構築しています。

コンパス

Compass は、テクノロジーを活用した不動産プラットフォームです。Google は、不動産、テクノロジー、ビジネスのプロフェッショナルで構成される精鋭チームとともに、家探しのための最も信頼できる情報源になることを目指しています。

Databricks

Databricks は、Apache SparkTM をベースとしたクラウドベースの統合ワークスペースを提供しています。

Databricks コードベースは Monorepo です。Monorepo には、ほとんどのサービスを支える Scala コード、フロントエンド UI 用の JavaScript、スクリプト作成用の Python、インフラストラクチャを構成する Jsonnet などが含まれています。当社の monorepo には 100 万行の Scala 行が含まれていますが、内部のコード操作は高速です。(Databricks での Bazel を使用した Speedy Scala Builds

Dataform

Dataform は、データチームにスケーラブルな分析機能を提供します。同社は、少数の NPM パッケージとドキュメント サイトを単一の monorepo で管理し、そのすべてを Bazel で行っています。

Bazel への移行後、多くのメリットが報告されています。たとえば、次のようなものです。

  • CI の高速化: リモートビルドのキャッシュ保存を有効にしたことで、(リポジトリ全体の)平均ビルド時間が 30 分から 5 分に短縮されました。
  • ローカル開発の改善: 実行し忘れるランダムな bash スクリプトがなくなり、増分ビルドが数分から数秒に短縮されます
  • デベロッパーのセットアップ時間: 新しいエンジニアは、bazel、docker、JVM の 3 つの依存関係だけですべてのコードをビルドできます。当社のチームに加わった最後のエンジニアは、空のノートパソコンをまったく新しいノートパソコンで 30 分未満で、すべてのコードをビルドできました。

ディープシルバー FISHLABS

Deep Silver FISHLABS は、ハイエンド 3D ゲームのデベロッパーです。C++/Python/Go/C とともに Bazel を内部ビルドツールのベースとして使用し、特にすべての 3D アセットのベイクとデプロイに使用します。

Dropbox

Dropbox において、Bazel は分散型のビルドおよびテスト環境にとって重要な要素です。Google では、Bazel を使用して TypeScript/Python/Go/C/Rust を信頼性の高い製品版リリースに組み合わせています。

Engel & Völkers

Engel & Völkers AG はドイツの非公開企業であり、一連のフランチャイズ オフィスを介して不動産取引に関連するサービスを提供しています。

Google の内部プロジェクトでは、コンパイル時間が 11 分から約 1 分に短縮されました。これは素晴らしい成果であり、Google は現在、より多くのプロジェクトで Bazel を利用できるように取り組んでいます。 (Google Cloud Build と Bazel でのテスト)。

Etsy

Etsy は、ハンドメイド商品やヴィンテージ商品、消耗品、独自の工場製造品を扱う e コマース ウェブサイトです。

Bazel を使用して、Java ベースの検索プラットフォームを構築、テストしています。Bazel は、ベアメタル サーバー用のパッケージと再現可能な Docker イメージの両方を生成します。

Evertz.io

Evertz.io は、Evertz Microsystems が開発したマルチテナントのサーバーレス SaaS プラットフォームで、ブロードキャスト メディア業界に費用対効果の高いマルチリージョン サービスを世界中で提供します。

ウェブサイトは、Angular と Bazel のワークフローで完全にビルドされ、デプロイされています(ソース)。

探す

FINDMINE は小売業界向けの自動化テクノロジーで、機械学習を利用して、手作業で行っていた煩雑な商品キュレーション プロセスを拡張します。Google では、Python パッケージのビルド、テスト、デプロイのプロセス全体を機械化するために、Bazel を使用しています。

Flexport

Flexport は、テクノロジーを活用したグローバルな貨物輸送会社です。当社の使命は、すべての人にとって国際取引を容易にすることです。Flexport では、Bazel を使用して Java / JavaScript サービスとクライアント ライブラリのビルドとテストを行い、protobuf 定義から Java と Ruby コードを生成しています。Bazel とは独立して JUnit 5 のテストを実行する方法をお読みください。

Google

Bazel は、Google のニーズにスケーリングし、再現性とプラットフォーム/言語のサポートに関する Google の要件を満たすことができるように設計されています。Google のソフトウェアはすべて Bazel を使用して構築されています。Google では、毎日何百万ものビルドに Bazel とそのルールを使用しています。

Huawei

Huawei Technologies は、約 30 のプロジェクトで Bazel を使用しています。Go プロジェクトを除き、Java/Scala/Go プロジェクトで、その他は元々 Maven でビルドされています。ここでは、Maven でビルドされたプロジェクトを Bazel でビルドされたプロジェクトに変換する簡単なツールを作成します。今後、より多くのプロジェクトで Bazel が使用されるようになる予定です。

IMC 取引

IMC はアムステルダムに本社を置く世界的な独自の取引会社兼マーケット メーカーです。Google では、Bazel を使用して、Java/C++/Python/SystemVerilog プロジェクトを継続的にビルドおよびテストしています。

Improbable.io

Improbable.io は、SpatialOS を開発しています。SpatialOS は、数百万の複雑なエンティティが持つ巨大なシミュレーションの作成を可能にする分散オペレーティング システムです。

Interaxon

InteraXon は、脳波をデジタル シグナルに変換するハードウェアとソフトウェアのプラットフォームを開発している、ソート コントロールされたコンピューティング企業です。

木星

Jupiter は、食料品と家庭用品の配達を毎週提供している企業です。

バックエンド コードで Bazel を使用しています。具体的には、リモート キャッシュを使用して proto と Kotlin を JVM バイナリにコンパイルしています。(出典

Just はノルウェーに本社を置く金融テクノロジー企業で、世界中の企業の財務担当者がリスクと流動性を管理する方法を変革するソフトウェア ソリューションを開発しています。アプリケーション スタック全体が Bazel でビルドされています。

LINE

LINE は、日本で最も一般的なメッセージ アプリであるインスタント コミュニケーション用のアプリを提供しています。コードベースで Bazel を使用し、約 60% の Swift と 40% の C/C++/Objective-C/Objective-C++ を構成しています(出典)。

Bazel に切り替えた後、ビルド時間を大幅に短縮することができました。これにより、QA 期間の所要時間が大幅に短縮されました。新しいビルドをテスターに配布しても、ビルドとテストにさらに 1 時間かかることはありません。(Bazel を使用した iOS 用 LINE のビルド パフォーマンスの改善

LingoChamp

LingoChamp は、英語学習者にプロフェッショナル向けソリューションを提供しています。Go、Java、Python のプロジェクトで Bazel を使用しています

LinkedIn

Microsoft の子会社である LinkedIn は、世界最大級のプロフェッショナル ソーシャル ネットワークです。LinkedIn では、iOS アプリのビルドに Bazel を使用しています。

Lucid Software

Lucid Software はビジュアル コラボレーションのリーダーであり、チームがアイデアから現実までの未来を見据え、構築できるよう支援しています。同社のプロダクト(LucidchartLucidsparkLucidscale)を使用すると、共有ビジョンに基づいて連携し、複雑さを明確にし、どこにいても視覚的に協力できます。

Lucid は Bazel を使用して、数百万行の Scala と TypeScript をビルドしています。Bazel に移行することで、ビルドが大幅に高速化され、ビルド環境に対する外部依存関係が削減され、ビルドシステムでのデベロッパーのエクスペリエンスが簡素化されました。Bazel により Lucid のデベロッパーの生産性が向上し、さらなる成長が実現しました。

Lyft

Lyft は、iOS(出典)と Android アプリに Bazel を使用しています。

Meetup

Meetup は、オフラインでのグループ会議を促進するオンライン ソーシャル ネットワーク ポータルです。Meetup エンジニアリング チームは rules_scala に貢献し、rules_avrorules_openapi のメンテナンスを行います。

Nvidia

NVIDIA では、Python 用の dazel(docker bazel)を使用して、bazel の Python の短所に対処しています。その他はすべて通常の bazel で実行されます(主に Go / Scala/ C++/ Cuda)(ソース

Peloton テクノロジー

Peloton Technology は、トラックの事故や燃料の使用に対処する自動車両テクノロジー企業です。Bazel を使用して、自動車安全システム向けの信頼性の高いビルドを実現しています。

Pinterest

Pinterest は世界中のアイデアを集めたカタログです。Bazel を使用して、さまざまなバックエンド サービス(Java/C++)や iOS アプリケーション(Objective-C/C++)をビルドしています。

Bazel は、パフォーマンスを桁違いに改善するための基盤を構築し、ビルド環境のばらつきを排除し、段階的に導入するという当社の目標に最適であると判断しました。その結果 今ではすべての iOS リリースを Bazel を使ってリリースしています 高速で信頼性の高い iOS ビルドを Pinterest で開発

PubRef

PubRef は新たな科学的パブリッシング プラットフォームです。これらは、Bazel と rules_closure を使用してフロントエンドを、ネイティブ Java ルールでメイン バックエンドをビルドします。rules_gorules_noderules_kotlin は、さまざまなバックエンド サービスを構築します。rules_protobuf は、バックエンド サービス間の gRPC ベースの通信を支援するために使用されます。PubRef.org はコロラド州ボルダーを拠点としています。

Redfin

Redfin は、フルサービスのローカル エージェントを備えた次世代の不動産仲介業者です。Bazel を使用して、ウェブサイトやさまざまなバックエンド サービスを構築し、デプロイします。

コンバージョンがほぼ達成されたおかげで、状況は大きく改善されました。CI ビルドは高速です(これまでは 40 ~ 90 分かかっていましたが、今では dev ビルドが平均 5 ~ 6 分で完了します)。信頼性もはるかに高くなります。これを定量化するのは困難ですが、原因不明のビルドの障害が「ただ起きる」だけのものから、解決すべき実際の問題とみなされるようになったことで、信頼性がますます高まる好循環が生まれています。(Maven から Bazel に切り替えてビルドが 10 倍高速化

一定のパターン

Ritual は、飲食店と顧客をつなぐモバイル ピックアップ アプリです。待ちに待たずに好きな食べ物や飲み物を手に入れるためのシンプルで時間を節約できるツールを提供します。Ritual はバックエンド サービスに Bazel を使用しています。

スナップ

Snapchat メッセージング アプリのデベロッパーである Snap は、2020 年に Buck から Bazel に移行しました(出典)。プロセスの詳細については、エンジニアリングのブログをご覧ください。

Stripe

Stripe はモバイル決済ソリューションを提供しています。エンジニアリング ブログに詳しく記載されているように、Burgen はビルドとテストのパイプラインで Bazel を使用しています。

ティンダー

Tinder は、2021 年に iOS アプリを CocoaPods から Bazel に移行しました(出典)。

Tink

Tink はヨーロッパのフィンテックで、ヨーロッパ全土の銀行に接続するための最適な方法を構築しています。

Bazel を使用して、多言語モノリポからバックエンド サービスを構築しています。Tink のエンジニアが bazel build //stockholm/... 交流グループを組織しています。

Tokopedia

Tokopedia は、e コマースを専門とするインドネシアのテクノロジー企業で、1 か月のアクティブ ユーザーが 9, 000 万人を超え、プラットフォーム上の販売者は 700 万を超えています。

また、Bazel がどのようにしてビルドを高速化したかを説明した記事「Tokopedia が iOS のビルド時間を 1000% 高速化した方法」を作成しました。Bazel を使用するとビルド時間が 55 分から 10 分に、リモート キャッシュを使用すると 5 分に短縮されました。

Trunk.io

Trunk はサンフランシスコを拠点とする企業で、Andreessen Horowitz と Initialized Capital の出資を受けています。Trunk は強力な pull リクエスト マージサービスを提供しており、Bazel ビルドシステムで業界をリードしています。コードベース内の依存関係を Bazel が把握している機能を活用することで、Tunk のマージ サービスはインテリジェントに並列マージレーンを作成し、独立した変更のテストとマージを同時に行うことができます。

Trunk の内部 monorepo は、bazel グラフの知識を活用してコードを選択的にテストおよびマージしながら、最新の C++ 20 と TypeScript を構築します。

X(旧 Twitter)

Twitter は、主要なビルドツールとして Pants から Bazel に移行する決定を下しました(出典)。

ツーシグマ

Two Sigma はニューヨークに本社を置くテクノロジー企業で、世界のデータから価値を引き出すことに注力しています。

Uber

Uber は配車サービス会社です。900 人のアクティブな開発者を抱える Uber の Go monorepo は、Bazel を使用した最大級の Go リポジトリの一つである可能性があります。詳しくは、Bazel を使用した Uber の Go Monorepo の構築をご覧ください。

Uber Advanced Technologies Group

Uber Advanced Technologies Group は、Uber でのトラック輸送/貨物輸送、自律走行ライドシェアリングなどの自律走行車事業に注力しています。この組織では、Bazel を主要なビルドシステムとして使用しています。

Vistar Media

Vistar Media は、現実世界でのユーザーの行動に基づいてブランドが消費者にリーチできる広告プラットフォームです。同社のエンジニアリング チームは主にフィラデルフィアを拠点としており、ビルドとデプロイ、テストの高速化、さまざまなテクノロジーで記述されたリポジトリの統合に Bazel を使用しています。

VMware

VMware は Bazel を使用して、お客様のために革新的なプロダクトを開発しながら、決定論的で信頼性の高いビルドを生成します。

Wix

Wix はクラウドベースのウェブ開発プラットフォームです。バックエンドは Java と Scala コードを使用します。Google Cloud Build でリモート実行を使用します。

bazel リモート実行で実行した場合、クリーンビルドが約 5 倍高速になりました。bazel の優れたビルド/テスト並列処理機能を利用して、ワーカー ファームにビルド/テスト アクションをディスパッチします。bazel の積極的なキャッシュ メカニズムが使用されているため、平均ビルド時間が 10 倍以上短縮されます。 (Maven または Gradle から Bazel に移行する場合は、確認すべき 5 つの重要な質問

Zenly

Zenly は、友だちや家族の現在地を把握できるライブマップです。待ち合わせにも、最新情報のチェックにもおすすめです。離れていても、つながりを感じることができます。


Bazel を使用したオープンソース プロジェクト

アブセイル

Abseil は、C++ 標準ライブラリを拡張するように設計された(C++11 準拠の)C++ コードのオープンソース コレクションです。

Angular

Angular は一般的なウェブ フレームワークです。Angular は Bazel でビルドされています。

アポロ

Apollo は、自律走行車の開発、テスト、デプロイを加速する、高パフォーマンスで柔軟なアーキテクチャです。

brpc

バイドゥ全体で使用される産業グレードの RPC フレームワーク。1,000,000 を超えるインスタンス(クライアント数は除く)と、バイドゥ内で「baidu-rpc」と呼ばれる数千種類のサービスがあります。

cert-manager

cert-manager は、さまざまな発行元からの TLS 証明書の管理と発行を自動化する Kubernetes アドオンです。これにより、証明書が有効で最新の状態であることを定期的に確認し、有効期限が切れる前の適切なタイミングで証明書の更新を試みます。

CallBuilder

1 つの関数を記述してビルダーを作成できる Java コード ジェネレータ。

CPPItertools

Python の組み込みツールと itertools ライブラリにヒントを得た範囲ベースのループ用アドオンを提供する C++ ライブラリ。itertools や Python3 ビルトインと同様に、このライブラリでは可能な限り遅延評価を使用します。

Copybara

Copybara は、リポジトリ間でコードを変換および移動するためのツールです。

Dagger

Dagger は、Java と Android の両方に対応した、完全に静的なコンパイル時依存関係インジェクション フレームワークです。

DAML

DAML は、プライバシーに配慮した安全なランタイムで、将来を見据えた分散アプリケーションを構築するためのスマート コントラクト言語です。

DeepMind ラボ

エージェント ベースの AI 研究のためのカスタマイズ可能な 3D プラットフォーム。

ドレーク

Drake は MIT で始まった C++ ツールボックスで、現在はトヨタ研究所が率いています。ロボットのダイナミクスを分析し、ロボットの制御システムを構築するためのツールのコレクションであり、最適化ベースの設計と分析に重点を置いています。

Envoy

C++ L7 プロキシと通信バス

エラーが発生しやすい

Java の一般的な誤りをコンパイル時のエラーとしてキャッチします。(Bazel への移行が進行中です)。

Extensible Service Proxy

Extensible Service Proxy(別名 ESP)は、JSON/REST または gRPC API サービスの API 管理機能を有効にするプロキシです。現在の実装は、NGINX HTTP リバース プロキシ サーバーに基づいています。

FFruit

FFruit は、人気のサービス Falling Fruit に対応する無料のオープンソース Android アプリです。

Gerrit コードレビュー

Gerrit は、Git ベースのプロジェクトを対象としたコードレビューおよびプロジェクト管理ツールです。

ギチル

Gitiles は、JGit 上に構築された Git リポジトリ用のシンプルなリポジトリ ブラウザです。

Grakn

Grakn(https://grakn.ai/)は、複雑なデータ ネットワークを整理してクエリ可能にするナレッジグラフ エンジンです。

gRPC

言語やプラットフォームに依存しないリモート プロシージャ コール システム。(Bazel はサポートされているビルドシステムですが、プライマリではありません)。

gVisor

gVisor はコンテナ ランタイム サンドボックスです。

ゲツリ

Guetzli は、高品質のビジュアルで優れた圧縮密度を実現することを目的とする JPEG エンコーダです。

グラバ

Prolog スタイルの述語を記述し、通常の Java コードからシームレスに使用できる Java コード生成ツール。

ヘロン

Heron は、Twitter のリアルタイムの分散型フォールト トレラント ストリーム処理エンジンです。

ジャザー

Jazzer は、JUnit 5 と統合される Java およびその他の JVM ベースの言語用のファザーです。

JGit

JGit は、Git バージョン管理システムを実装する軽量のピュア Java ライブラリです。

Jsonnet

JSON 用の洗練された正式指定された構成生成言語。(Bazel はサポート対象のビルドシステムです)。

Kubernetes

Kubernetes は、複数のホストにまたがってコンテナ化されたアプリケーションを管理するためのオープンソース システムであり、アプリケーションのデプロイ、メンテナンス、スケーリングのための基本的なメカニズムを提供します。

カイザ

コードと連携するツールを構築するためのエコシステム。

Nomulus

Google App Engine のトップレベル ドメイン名レジストリ サービス。

ONOS : オープン ネットワーク オペレーティング システム

ONOS は、従来の「ブラウン フィールド」ネットワークから SDN「グリーン フィールド」ネットワークへの移行をサポートする唯一の SDN コントローラ プラットフォームです。これにより、ネットワーク オペレータにとって魅力的な新機能を実現し、デプロイや運用の中断を伴うコスト ポイントを達成できます。

Java 用 PetitParser

従来、プログラミング言語の文法は静的に指定されます。あいまいさが避けられないため、構成や再利用が困難です。PetitParser は、スキャン不要の解析、パーサー コンビネータ、式の文法の解析、packrat パーサーのアイデアを組み合わせ、文法やパーサーを動的に再構成可能なオブジェクトとしてモデル化します。

PlaidML

PlaidML は、ディープ ラーニングをどこでも活用できるようにするためのフレームワークです。

プロジェクト V

プロジェクト V は、インターネット経由で独自のプライバシー ネットワークを構築する際に役立つツールのセットです。

Prysmatic Labs Ethereum 2.0 の実装

Prysm は、ブロックチェーン ベースの分散コンピューティング プラットフォームである Ethereum 2.0 のシャーディング クライアントです。

レイモンド

Ray は、柔軟で高性能な分散実行フレームワークです。

休息

Resty は、Ruby rest-client にヒントを得た Go 用のシンプルな HTTP および REST クライアント ライブラリです。

ラフタイム

Roughtime は安全な時刻の同期を実現することを目的としたプロジェクトです。

セレニウム

Selenium は、ウェブ アプリケーションをテストするためのポータブルなフレームワークです。

セマンティック

Semantic は、ソースコードの解析、分析、比較のための Haskell ライブラリおよびコマンドライン ツールです。GitHub によって開発されています(コード ナビゲーションなどで使用されています)。

配信済み

Served は、高パフォーマンスの RESTful ウェブサーバーを構築するための C++ ライブラリです。

Sonnet

Sonnet は、複雑なニューラル ネットワークを構築するための TensorFlow 上に構築されたライブラリです。

ソルベ

Sorbet は、Ruby のサブセット用の高速で強力な型チェッカーです。数百万行のコードからなるコードベースにスケーリングでき、段階的に導入できます。

Spotify

Spotify は Bazel を使用して iOS アプリと Android アプリをビルドしています(出典)。

Tink

Tink は多言語、クロス プラットフォームのオープンソース ライブラリで、安全で正しく簡単に使用でき、誤用が難しい暗号 API を提供します。

TensorFlow

マシン インテリジェンスのためのオープンソース ソフトウェア ライブラリ。

ターボ サンタ

プラットフォームに依存しない GameBoy エミュレータ。

TypeDB

TypeDB ロゴ

Bazel を使用すると、TypeDB チームは、さまざまな言語で多数のリポジトリを管理し、多数のプラットフォームにシームレスにデプロイする高度にオーケストレーションされた CI と配信パイプラインを構築できます。TypeDB チームは、ソフトウェア配布の組み立てとデプロイに関する Bazel ルールもリリースしています。

快適さを損なわない

Project Wycheproof では、暗号ライブラリを既知の攻撃でテストしています。

XIOSim

XIOSim は、x86 アーキテクチャ向けの詳細なユーザーモード マイクロアーキテクチャ シミュレータです。

ZhihuDailyPurify

ZhihuDailyPurify は、中国の Q&A サイト Zhihu Daily の軽量版です。