本頁面列出已知使用 Bazel 的公司和 OSS 專案。這並不代表 Google 認可。
使用 Bazel 的公司
acqio
Acqio 是一家金融科技公司,為中小型商家提供付款產品和服務。Acqio 有幾個單一版本存放區,並使用 Bazel 搭配 Kubernetes 提供快速可靠的微服務。
Adobe
Adobe 已發布 Bazel 規則,可用於持續性、GitOps 驅動的 Kubernetes 部署作業。
Asana
Asana 是專為團隊追蹤工作而設計的網頁和行動應用程式。他們的經驗分享:
Bazel 可提高 Asana 所有建構/測試的可靠性、穩定性和速度。我們不再需要清除錯誤快取。
Ascend.io
Ascend 是一家位於帕洛阿托的初創公司,提供大型資料集分析解決方案。他們的座右銘是「大數據很難,我們會簡化這項作業。
ASML
ASML 是半導體產業的創新領導者,我們為晶片製造商提供所需的一切,包括硬體、軟體和服務,以便透過光刻技術在矽晶圓上大量生產圖案。
Beeswax
Beeswax 是一家位於紐約的新創公司,提供即時出價服務。Bazel 為他們的 Jenkins 持續整合和部署架構提供支援。Beeswax 很喜歡 Bazel,因為它速度極快、正確無誤,而且支援多種語言和平台。
Braintree
Braintree 是 PayPal 的子公司,專門為網站和應用程式開發付款解決方案。他們使用 Bazel 建構部分內部版本,Paul Gross 甚至發布了一篇精彩文章,說明他們如何改用 Bazel。
Canva
Canva 利用 Bazel 管理龐大的多語言程式碼庫,包括 Java、TypeScript、Scala、Python 等。遷移至 Bazel 後,開發人員和運算基礎架構的效率大幅提升,例如 CI 建構作業的平均時間減少了 5 到 6 倍,並持續成為公司快速、可重現且標準化的軟體建構作業的基礎。
CarGurus
CarGurus 的使命是打造全球最值得信賴且最透明的汽車市場,並使用 Bazel 建構多語言單一版本庫。
指南針
Compass 是一個以科技為主的房地產平台。我們擁有一支由房地產、科技和商業專業人士組成的菁英團隊,致力於成為房屋尋找者最可信賴的最佳資訊來源。
Databricks
Databricks 提供以 Apache Spark™ 為基礎的雲端整合工作區。
Databricks 程式碼基底是 Monorepo,其中包含用於支援我們大部分服務的 Scala 程式碼、用於前端 UI 的 JavaScript、用於指令碼的 Python、用於設定基礎架構的 Jsonnet,以及更多內容 [...] 雖然 Monorepo 包含數百萬行的 Scala,但使用其中的程式碼仍能快速且流暢。(使用 Databricks 的 Bazel 加快 Scala 建構作業)
Dataform
Dataform 可為資料團隊提供可擴充的分析功能。他們在單一 monorepo 中維護少數的 NPM 套件和說明文件網站,並使用 Bazel 執行所有操作。
遷移至 Bazel 後,他們發現許多優點,包括:
- 加快 CI 速度:我們啟用了遠端建構快取功能,因此整個存放區的平均建構時間從 30 分鐘縮短為 5 分鐘。
- 本機開發功能改善:不再有您忘記執行的隨機 bash 指令碼,且增量建構作業時間從數分鐘縮短至數秒
- 開發人員設定時間:新工程師只需使用 3 個依附元件 (bazel、docker 和 JVM) 就能建構所有程式碼。上一位加入團隊的工程師在全新的空筆電視上,花了不到 30 分鐘就建構出所有程式碼
Deep Silver FISHLABS
Deep Silver FISHLABS 是高階 3D 遊戲的開發商。他們使用 Bazel 搭配 C++/Python/Go/C 做為內部建構工具的基礎,特別是用於烘焙及部署所有 3D 素材資源。
Dropbox
在 Dropbox,Bazel 是分散式建構和測試環境的重要元件。我們使用 Bazel 將 TypeScript/Python/Go/C/Rust 結合為可靠的正式發布版本。
Engel & Völkers
Engel & Völkers AG 是一家私人持股德國公司,透過一系列特許經銷商辦公室提供房地產交易相關服務。
我們內部的一項專案的編譯時間從 11 分鐘縮短到約 1 分鐘,這是令人驚豔的成就,我們目前正致力於將 Bazel 導入更多專案。(嘗試使用 Google Cloud Build 和 Bazel)
Etsy
Etsy 是電子商務網站,專門販售手工或復古商品和用品,以及獨特的工廠製造商品。
他們使用 Bazel 建構及測試以 Java 為基礎的搜尋平台。Bazel 會為裸機伺服器和可重複使用的 Docker 映像檔產生套件。
Evertz.io
Evertz.io 是由 Evertz Microsystems 建立的多租戶無伺服器 SaaS 平台,可為廣播媒體產業提供全球多區域服務,且價格實惠。
網站會使用 Angular 和 Bazel 工作流程 (來源) 進行完整建構及部署。
FINDMINE
FINDMINE 是零售業的自動化技術,可利用機器學習來擴大目前產品策展的人工作業程序,以免造成繁瑣的作業。我們使用 Bazel 來自動化整個 Python 套件建構、測試和部署程序。
Flexport
Flexport 是一家以科技為後盾的全球貨運代理商,我們的使命是讓全球貿易更容易。在 Flexport,我們使用 Bazel 建構/測試 Java/JavaScript 服務和用戶端程式庫,並從 protobuf 定義產生 Java 和 Ruby 程式碼。瞭解如何使用 Bazel 獨立執行個別 JUnit 5 測試。
Foursquare
Foursquare 的使命是開發科技,在數位空間和實體地點之間建立有意義的橋樑。我們使用 Bazel 管理數百萬行 Scala 和 Python 程式碼,這些程式碼主要用於支援資料密集應用程式,包括複雜的 codegen 和容器建構程序。
GermanTechJobs
Bazel 讓我們的工作流程簡化了 10 倍,並啟用大規模運送功能。
Bazel 的設計可因應 Google 的需求進行擴充,並滿足 Google 在可重現性和平台/語言支援方面的要求。Google 的所有軟體都是使用 Bazel 建構。Google 每天都會使用 Bazel 和其規則進行數百萬次建構作業。
Huawei
華為技術在約 30 個專案中使用 Bazel,這些專案是 Java/Scala/Go 專案,除了 Go 專案外,其他專案原本都是由 Maven 建構。我們會編寫簡單的工具,將 Maven 建構的專案轉換為 Bazel 建構的專案。日後會有越來越多專案使用 Bazel。
IMC Trading
IMC 是一家全球自有交易公司和市價商,總部位於阿姆斯特丹。我們使用 Bazel 持續建構及測試 Java/C++/Python/SystemVerilog 專案。
Improbable.io
Improbable.io 開發了 SpatialOS,這是一種分散式作業系統,可用於建立包含數百萬個複雜實體的大型模擬環境。
Interaxon
InteraXon 是一家以思想控制運算為主軸的電腦公司,專門打造硬體和軟體平台,將腦波轉換為數位訊號。
Jupiter
Jupiter 是一家公司,每週提供生鮮雜貨和家用必需品的外送服務。
他們在後端程式碼中使用 Bazel,特別是使用遠端快取功能,將 Protobuf 和 Kotlin 編譯為 JVM 二進位檔。(資料來源)
Just
Just 是一家總部位於挪威的企業金融科技公司,致力於開發軟體解決方案,協助全球企業財務人員改變風險和流動性管理方式。整個應用程式堆疊都是使用 Bazel 建構。
Line
Line 提供即時通訊應用程式,是日本最受歡迎的訊息應用程式。他們在程式碼集 (約 60% Swift 和 40% C/C++/Objective-C/Objective-C++) 中使用 Bazel (來源)。
改用 Bazel 後,我們發現建構時間大幅縮短。這項做法大幅改善了品質保證期間的處理時間。將新版本發布給測試人員時,不再需要等待另一個小時的建構和測試時間。(使用 Bazel 改善 LINE for iOS 的建構效能)
LingoChamp
LingoChamp 為英語學習者提供專業解決方案。我們使用 Bazel 建構 Go、Java 和 Python 專案。
LinkedIn 是 Microsoft 的子公司,也是全球最大的專業人士社交網路。LinkedIn 使用 Bazel 建構 iOS 應用程式。
Lucid Software
Lucid Software 是視覺協作領域的領導者,可協助團隊掌握未來趨勢,並將構想付諸實現。透過 Lucidchart、Lucidspark 和 Lucidscale 等產品,團隊成員無論身在何處,都能圍繞共同願景進行協調、釐清複雜問題,並以視覺化方式進行協作。Lucidchart
Lucid 使用 Bazel 建構數百萬行 Scala 和 TypeScript 程式碼。遷移至 Bazel 後,建構作業速度大幅提升,對建構環境的依賴性降低,開發人員使用建構系統的體驗也變得更簡單。Bazel 提升了 Lucid 開發人員的工作效率,並開啟了進一步成長的契機。
Lyft
Lyft 會使用 Bazel 建構 iOS (來源) 和 Android 應用程式。
Meetup
Meetup 是線上社群網站入口網站,可協助安排離線群組會議。Meetup 工程團隊會為 rules_scala 提供貢獻,並維護 rules_avro 和 rules_openapi。
Nvidia
在 NVIDIA,我們一直使用 dazel(Docker Bazel) 來處理 Python 的部分 Bazel 缺點。其他所有項目都會在一般 Bazel 中執行 (大多為 Go / Scala/ C++/ Cuda)。(來源)
Peloton Technology
Peloton Technology 是一家自動駕駛技術公司,致力解決卡車事故和燃料使用問題。他們使用 Bazel 為汽車安全系統啟用可靠的建構作業。
豬草
Pigweed 是開放原始碼解決方案,可讓大型團隊持續開發出可靠且快速的嵌入式產品。Pigweed 已出貨至數百萬部裝置,包括 Google 的 Pixel 裝置系列、Nest 溫度控制器、衛星和自主飛行無人機。
Pigweed 會使用 Bazel 做為主要建構系統。嵌入式裝置適用的 Bazel 網誌文章討論了為何我們認為這是嵌入式專案的絕佳建構系統!
Pinterest 是全球的靈感目錄,他們使用 Bazel 建構各種後端服務 (Java/C++) 和 iOS 應用程式 (Objective-C/C++)。
我們認為 Bazel 最符合我們的目標,可建立基礎,讓效能大幅提升、消除建構環境中的變異性,並逐步採用。因此,我們現在使用 Bazel 發布所有 iOS 版本。在 Pinterest 開發快速可靠的 iOS 版本
PubRef
PubRef 是新興的科學出版平台。他們使用 Bazel 搭配 rules_closure 建構前端、原生 Java 規則建構主要後端、rules_go、rules_node 和 rules_kotlin 建構各種後端服務。rules_protobuf 可協助後端服務之間以 gRPC 為基礎進行通訊。PubRef.org 位於科羅拉多州博爾德。
Redfin
Redfin 是新一代的房地產經紀公司,提供全方位的在地房仲服務。他們使用 Bazel 建構及部署網站和各種後端服務。
轉換作業已大致完成,情況也大幅改善!我們的 CI 建構作業速度更快 (更快:過去需要 40 到 90 分鐘,現在開發人員建構作業平均只需 5 到 6 分鐘)。可靠性也大幅提升。這項指標較難量化,但我們已將不明原因的建構失敗問題,從「只是發生」的現象,轉變為需要解決的實際問題,進而進入良性循環,不斷提升可靠性。(我們從 Maven 改用 Bazel,建構作業速度提升 10 倍)
Ritual
Ritual 是一款行動提貨應用程式,可將餐廳與顧客連結,提供簡單又省時的工具,讓顧客不必等待就能取得所需的餐點和飲料。Ritual 會將 Bazel 用於後端服務。
Snap
Snapchat 訊息應用程式的開發人員 Snap 已在 2020 年從 Buck 遷移至 Bazel (來源)。如要進一步瞭解這項程序,請參閱他們的工程網誌。
Stripe
Stripe 提供行動支付解決方案。他們在建構和測試管道中使用 Bazel,詳情請參閱工程部落格。
Tinder
Tinder 在 2021 年將 iOS 應用程式從 CocoaPods 遷移至 Bazel (來源)。
Tink
Tink 是歐洲金融科技公司,致力打造連結歐洲各大銀行的最佳方式。
他們使用 Bazel 從多語言單一版本控制工具箱中建構後端服務。Tink 的工程師正在安排 bazel build //stockholm/... 聚會群組。
Tokopedia
Tokopedia 是一家專門從事電商的印尼科技公司,每月活躍使用者超過 9, 000 萬人,平台上有超過 700 萬家商家。
他們撰寫了「Tokopedia 如何將 iOS 建構時間縮短 1000%」一文,說明 Bazel 如何加快建構速度。使用 Bazel 後,建構時間從 55 分鐘縮短為 10 分鐘,再加上遠端快取功能,更縮短至 5 分鐘。
Trunk.io
Trunk 是一家位於舊金山的公司,由 Andreessen Horowitz 和 Initialized Capital 提供資金。Trunk 提供強大的合併提取要求服務,並為 Bazel 建構系統提供一流的支援。透過利用 Bazel 對程式碼集中依附元件的瞭解,Trunk 的合併服務可聰明地建立平行合併路徑,讓獨立變更同時進行測試及合併。
Trunk 的內部單一版本控制項會建構現代 C++ 20 和 typescript,同時運用 Bazel 圖表知識,有選擇地測試及合併程式碼。
Twitter 已決定將主要的建構工具從 Pants 改為 Bazel (來源)。
Two Sigma
Two Sigma 是一家總部位於紐約的科技公司,致力於從全球資料中找出價值。
TypeDB
TypeDB 是一項資料庫技術,可用於以直覺方式模擬相互連結的資料。透過 TypeQL 這項類型理論和多態查詢語言,您可以使用簡單易讀的查詢語言存取資料,並以極快的速度執行。
Bazel 可讓 TypeDB 團隊建構高度協調的 CI 和發布管道,以便管理多種語言的許多存放區,並順利部署至多個平台。TypeDB 團隊也發布了 Bazel 規則,用於組合及部署軟體發行版本。
Uber
Uber 是叫車服務公司,Uber 的 Go 單一存放區擁有 900 名活躍開發人員,可能是使用 Bazel 的最大 Go 存放區之一。如要進一步瞭解他們的經驗,請參閱「使用 Bazel 建構 Uber 的 Go Monorepo」一文。
Uber Advanced Technologies Group
Uber 先進科技團隊專注於 Uber 的自動駕駛車輛計畫,包括卡車/貨運和自動駕駛共乘服務。該機構使用 Bazel 做為主要建構系統。
Vistar Media
Vistar Media 是廣告平台,可讓品牌根據消費者在實體世界的行為觸及他們。他們的工程團隊主要位於費城,並使用 Bazel 進行建構和部署作業,以加快測試速度,並整合使用各種不同技術編寫的存放區。
VMware
VMware 使用 Bazel 產生可靠的確定性版本,同時為客戶開發創新產品。
Wix
Wix 是雲端式網頁開發平台。後端使用 Java 和 Scala 程式碼。這些工作流程會使用 Google Cloud Build 的遠端執行功能。
我們發現,使用 bazel 遠端執行功能執行時,清除建構作業的速度可加快約 5 倍,因為這項功能會將建構/測試動作分派至 worker 農場,並利用 bazel 的優異建構/測試平行處理功能。由於使用了 Bazel 的積極快取機制,平均建構時間快了 10 倍以上。(從 Maven 或 Gradle 遷移至 Bazel?5 個你必須問自己的關鍵問題)
Zenly
Zenly 是一張顯示親友即時位置的地圖。這是最有趣的見面方式,或是瞭解最新動態!即使分隔兩地,也能感受到彼此的存在。
使用 Bazel 的開放原始碼專案
Abseil
Abseil 是開放原始碼的 C++ 程式碼集合 (符合 C++11 標準),旨在擴充 C++ 標準程式庫。
Angular
Angular 是熱門的網路架構。Angular 是使用 Bazel 建構。
Apollo
Apollo 是一項高效且彈性的架構,可加快自動駕駛車輛的開發、測試和部署作業。
brpc
在百度內使用的工業級 RPC 架構,有 1,000,000 個以上的例項(不含用戶端) 和數千種服務,在百度內稱為「baidu-rpc」。
cert-manager
cert-manager 是 Kubernetes 外掛程式,可自動管理並發出來自不同發出來源的 TLS 憑證。這項服務會定期確保憑證有效且為最新版本,並在到期前適當時間嘗試更新憑證。
CallBuilder
Java 程式碼產生器,可讓您透過編寫一個函式來建立建構工具。
CPPItertools
這個 C++ 程式庫提供範圍為基礎的 for 迴圈外掛程式,靈感來自 Python 內建程式和 itertools 程式庫。如同 itertools 和 Python 3 內建函式,這個程式庫會盡可能使用惰性評估。
Copybara
Copybara 是用於在儲存庫之間轉換及移動程式碼的工具。
Dagger
Dagger 是 Java 和 Android 的完全靜態編譯時間依附元件插入架構。
DAML
DAML 是一種智慧型合約語言,可在安全且注重隱私權的執行階段建構可隨時擴充的區塊鏈應用程式。
DeepMind Lab
可自訂的 3D 平台,可用於代理人 AI 研究。
Drake
Drake 是 MIT 開發的 C++ 工具箱,目前由 Toyota Research Institute 負責維護。這是一組工具,可用於分析機器人的動態和建立機器人控制系統,並著重於以最佳化為基礎的設計/分析。
Envoy
C++ L7 代理程式和通訊匯流排
容易發生錯誤
將常見的 Java 錯誤偵測為編譯時錯誤。(目前正在進行遷移至 Bazel 的作業)。
可擴充服務 Proxy
可擴充服務 Proxy (又稱為 ESP) 是一種 Proxy,可為 JSON/REST 或 gRPC API 服務啟用 API 管理功能。目前的實作是以 NGINX HTTP 反向 Proxy 伺服器為基礎。
FFruit
FFruit 是免費的開放原始碼 Android 應用程式,可用於熱門服務 Falling Fruit。
Gerrit Code Review
Gerrit 是適用於 Git 專案的程式碼審查和專案管理工具。
Gitiles
Gitiles 是專為 Git 存放區打造的簡易存放區瀏覽器,以 JGit 建構而成。
Grakn
Grakn (https://grakn.ai/) 是知識圖譜引擎,可將複雜的資料網路進行整理,並讓您進行查詢。
GRPC
語言和平台中立的遠端程序呼叫系統。(Bazel 雖然不是主要的建構系統,但仍受支援)。
gVisor
gVisor 是容器執行階段沙箱。
Guetzli
Guetzli 是 JPEG 編碼器,旨在以高視覺品質提供優異的壓縮密度。
Gulava
Java 程式碼產生器,可讓您編寫 Prolog 風格的謂詞,並透過一般 Java 程式碼無縫使用這些謂詞。
Heron
Heron 是 Twitter 推出的即時、分散式、容錯串流處理引擎。
Internet Computer Protocol
網際網路電腦通訊協定是公開的區塊鏈網路,可執行通用運算的複製作業,為數十萬個應用程式及其使用者提供服務。
Jazzer
Jazzer 是針對 Java 和其他整合 JUnit 5 的 JVM 語言所設計的模糊測試工具。
JGit
JGit 是實作 Git 版本控制系統的輕量純 Java 程式庫。
Jsonnet
這是 JSON 的優雅、正式指定的設定產生語言。(Bazel 是支援的建構系統)。
Kubernetes
Kubernetes 是開放原始碼系統,可管理多個主機上的容器化應用程式,提供應用程式部署、維護和擴充的基本機制。
Kythe
建構工具生態系統,可與程式碼搭配使用。
ls-lint
極速的目錄和檔名系統,可為專案檔案系統帶來一些結構。
Nomulus
Google App Engine 上的頂層網域名稱註冊服務。
ONOS:開放式網路作業系統
ONOS 是唯一支援從傳統「棕地」網路轉換為 SDN「綠地」網路的 SDN 控制器平台。這可為網路作業人員提供令人振奮的新功能,以及顛覆性的部署和營運成本點。
Java 適用的 PetitParser
程式設計語言的語法通常會以靜態方式指定。由於難免會產生模糊不清的情況,因此很難組合和重複使用。PetitParser 結合了無掃描器剖析、剖析器組合器、剖析式文法和 packrat 剖析器的概念,將文法和剖析器建模為可動態重新設定的物件。
PlaidML
PlaidML 是可讓深度學習在任何地方運作的架構。
Project V
Project V 是一組工具,可協助您透過網際網路建立專屬的隱私網路。
Prysmatic Labs 以太坊 2.0 實作
Prysm 是 Ethereum 2.0 的分割用戶端,後者是一種以區塊鏈為基礎的分散式運算平台。
Ray
Ray 是彈性高效能的分散式執行架構。
Resty
Resty 是 Go 適用的簡易 HTTP 和 REST 用戶端程式庫 (靈感來自 Ruby rest-client)。
Roughtime
Roughtime 是一項專案,旨在提供安全的時間同步功能。
Selenium
Selenium 是用於測試網頁應用程式的可攜式架構。
Semantic
Semantic 是 Haskell 程式庫和指令列工具,可用於剖析、分析及比較原始碼。這是由 GitHub 開發的功能 (並用於程式碼導覽的範例)。
放送
Served 是用於建構高效能 RESTful 網路伺服器的 C++ 程式庫。
Sonnet
Sonnet 是使用 TensorFlow 建構的程式庫,可用於建構複雜的神經網路。
Sorbet
Sorbet 是一款快速且強大的型別檢查器,可用於部分 Ruby 程式碼。它可擴充至含有數百萬行程式碼的程式碼集,且可逐步採用。
Spotify
Spotify 使用 Bazel 建構 iOS 和 Android 應用程式 (來源)。
Tink
Tink 是一款多語言、跨平台的開放原始碼程式庫,可提供安全、易於正確使用且難以濫用的加密 API。
TensorFlow
機器智慧開放原始碼軟體程式庫。
Turbo Santa
不受平台限制的 GameBoy 模擬器。
Wycheproof
Wycheproof 專案會針對加密編譯程式庫測試已知的攻擊。
XIOSim
XIOSim 是 x86 架構的詳細使用者模式微架構模擬器。
ZhihuDailyPurify
ZhihuDailyPurify 是 Zhihu Daily 的輕量版,這是中文問答網站。