這個頁面列出已知使用 Bazel 的公司和 OSS 專案。 這不代表我們認可該內容。
使用 Bazel 的公司
acqio
Acqio 是一間金融科技公司,為中小型商家提供付款產品和服務。Acqio 有許多單一儲存區,並使用 Bazel 和 Kubernetes 提供快速可靠的微服務。
Adobe
Adobe 已發布 Bazel 規則,適用於持續的 GitOps 驅動 Kubernetes 部署作業。
Asana
Asana 是一款網頁和行動應用程式,可協助團隊追蹤工作進度。以下是他們的想法:
Bazel 可提高 Asana 所有建構/測試的可靠性、穩定性和速度。由於快取不正確,我們不再需要清除。
Ascend.io
Ascend 是 Palo Alto 的新創公司,提供大型資料集分析解決方案。他們的座右銘是「大數據很難,我們讓一切變得簡單。
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 倍,而且 Bazel 持續成為公司快速、可重現且標準化軟體建構作業的基礎。
CarGurus
CarGurus 的使命是打造全球最值得信賴且公開透明的汽車市場,並使用 Bazel 建構多語言單一存放區。
指南針
Compass 是以科技為導向的房地產平台,我們擁有頂尖的房地產、科技和商業專業人士團隊,致力成為最值得信賴的購屋資訊來源。
Databricks
Databricks 提供以 Apache Spark™ 為基礎的雲端整合式工作區。
Databricks 程式碼基底是 Monorepo,包含支援大部分服務的 Scala 程式碼、前端 UI 的 JavaScript、指令碼的 Python、設定基礎架構的 Jsonnet 等等 [...] 即使 Monorepo 包含一百萬行 Scala,在其中處理程式碼仍快速且流暢。(Speedy Scala Builds with Bazel at Databricks)
Dataform
Dataform 為資料團隊提供可擴充的分析功能。他們在單一單一儲存區中維護少數幾個 NPM 套件和文件網站,並使用 Bazel 完成所有作業。
遷移至 Bazel 後,他們回報了許多優點,包括:
- 加快 CI 速度:我們啟用遠端建構快取,將平均建構時間從 30 分鐘縮短至 5 分鐘 (適用於整個存放區)。
- 改善本機開發作業:不必再使用隨機的 Bash 指令碼 (您可能會忘記執行),增量建構作業從幾分鐘縮短至幾秒
- 開發人員設定時間:新工程師只需 3 個依附元件 (bazel、docker 和 JVM),即可建構所有程式碼。我們團隊的最後一位工程師,在全新的空機筆電上,於 30 分鐘內建構了所有程式碼
Deep Silver FISHLABS
Deep Silver FISHLABS 是高階 3D 遊戲的開發商,他們以 C++/Python/Go/C 為基礎,使用 Bazel 做為內部建構工具,特別是烘焙和部署所有 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 是多租戶無伺服器 SaaS 平台,由 Evertz Microsystems 建立,可為全球廣播媒體產業提供經濟實惠的多區域服務。
網站已透過 Angular 和 Bazel 工作流程完整建構及部署 (來源)。
FINDMINE
FINDMINE 是零售業的自動化技術,運用機器學習技術,擴大目前手動且繁瑣的產品策展程序。我們使用 Bazel 自動執行整個 Python 套件的建構、測試和部署程序。
Flexport
Flexport 是一家採用科技的全球貨運代理商,我們的使命是讓全球貿易更輕鬆。在 Flexport,我們使用 Bazel 建構/測試 Java/JavaScript 服務和用戶端程式庫,並從 protobuf 定義產生 Java 和 Ruby 程式碼。瞭解我們如何使用 Bazel 獨立執行個別 JUnit 5 測試。
Foursquare
Foursquare 的使命是打造技術,在數位空間和實體地點之間建立有意義的橋樑。我們使用 Bazel 管理數百萬行的 Scala 和 Python 程式碼,這些程式碼主要用於支援資料密集型應用程式,包括複雜的程式碼產生和容器建構程序。
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,特別是編譯 Proto 和 Kotlin 至 JVM 二進位檔,並使用遠端快取。(資料來源)
Just
Just 是一家企業金融科技公司,總部位於挪威,專門打造軟體解決方案,協助全球企業財務主管管理風險和流動性。他們的整個應用程式堆疊都是以 Bazel 建構。
Line
Line 提供即時通訊應用程式,是日本最熱門的訊息應用程式。他們在程式碼集上使用 Bazel,其中約有 60% 是 Swift,40% 是 C/C++/Objective-C/Objective-C++ (來源)。
改用 Bazel 後,建構時間大幅縮短。這大幅縮短了品質保證期間的周轉時間。現在向測試人員發行新版本,不必再花一小時等待建構和測試。(Improving Build Performance of LINE for iOS with Bazel)
LingoChamp
LingoChamp 為英語學習者提供專業解決方案。我們在 Go、Java 和 Python 專案中使用 Bazel。
LinkedIn 是 Microsoft 的子公司,也是全球最大的專業人士社群網路。LinkedIn 使用 Bazel 建構 iOS 應用程式。
Lucid Software
Lucid Software 是視覺協作領域的領導者,可協助團隊從構想階段開始,逐步實現未來願景。透過 Lucidchart、Lucidspark 和 Lucidscale 等產品,團隊可以根據共同願景調整方向、釐清複雜問題,並以視覺化方式協作,不受地點限制。
Lucid 使用 Bazel 建構數百萬行的 Scala 和 TypeScript。改用 Bazel 後,建構作業的速度大幅提升,建構環境的外部依附元件減少,開發人員使用建構系統的體驗也更加簡化。Bazel 提升了 Lucid 的開發人員工作效率,並進一步推動成長。
Lyft
Lyft 在 iOS (來源) 和 Android 應用程式中採用 Bazel。
聚會
Meetup 是一個線上社群入口網站,可協助舉辦實體群組聚會。Meetup 工程團隊會貢獻 rules_scala,並維護 rules_avro 和 rules_openapi。
NVIDIA
在 Nvidia,我們一直使用 dazel(docker bazel) for python,解決 Bazel 的一些 Python 缺點。其他所有項目都會在正常的 bazel 中執行 (大多是 Go / Scala/ C++/ Cuda) (來源)
Peloton Technology
Peloton Technology 是一間自動駕駛車輛技術公司,致力於解決卡車事故和燃料使用問題。他們使用 Bazel 為汽車安全系統啟用可靠的建構作業。
豬草
Pigweed 是開放原始碼解決方案,可供大型團隊持續、穩健且快速地開發嵌入式產品。Pigweed 已在數百萬部裝置中出貨,包括 Google 的 Pixel 系列裝置、Nest 恆溫器、衛星和自主式無人機。
Pigweed 使用 Bazel 做為主要建構系統。請參閱「Bazel for Embedded」網誌文章,瞭解我們為何認為這是嵌入式專案的絕佳建構系統!
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 的後端服務使用 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 建構系統提供一流支援。Trunk 的合併服務會運用 Bazel 對程式碼集內依附元件的瞭解,智慧建立平行合併通道,讓獨立變更同時接受測試及合併。
Trunk 的內部單一存放區會建構現代 C++ 20 和 TypeScript,同時運用 Bazel 圖形知識,選擇性地測試及合併程式碼。
Twitter 已決定從 Pants 遷移至 Bazel,做為主要建構工具 (來源)。
Two Sigma
Two Sigma 是一家總部位於紐約的科技公司,致力於從全球資料中發掘價值。
TypeDB
TypeDB 是一種資料庫技術,可用於直覺式地建立互連資料模型。透過 TypeQL 的型別理論和多型查詢語言,您可以使用簡單易讀的查詢存取資料,而且查詢速度極快。
TypeDB 團隊運用 Bazel 建構高度協調的 CI 和發布管道,管理多種語言的眾多存放區,並順暢部署至多個平台。TypeDB 團隊也發布了 Bazel 規則,用於組裝及部署軟體發行版本。
Uber
Uber 是一家叫車公司,Uber 的 Go 單一存放區有 900 位活躍開發人員,可能是使用 Bazel 的最大 Go 存放區之一。如要進一步瞭解 Uber 的經驗,請參閱「Building Uber’s Go Monorepo with Bazel」一文。
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
Abseil 是開放原始碼的 C++ 程式碼集合 (符合 C++11 規範),旨在擴增 C++ 標準程式庫。
Angular
Angular 是熱門的網頁架構。 Angular 是使用 Bazel 建構。
Apollo
Apollo 是一種高效能的彈性架構,可加速自動駕駛車輛的開發、測試及部署。
brpc
這是百度內部使用的工業級 RPC 架構,有超過 100 萬個執行個體(不含用戶端) 和數千種服務,在百度內部稱為「baidu-rpc」。
cert-manager
cert-manager 是 Kubernetes 外掛程式,可自動管理及核發來自各種核發來源的 TLS 憑證。這項功能可確保憑證定期有效且為最新版本,並在憑證到期前適當時間嘗試更新。
CallBuilder
Java 程式碼產生器,可讓您編寫一個函式來建立建構工具。
CPPItertools
C++ 程式庫,提供以範圍為基礎的 for 迴圈外掛程式,靈感來自 Python 內建函式和 itertools 程式庫。與 itertools 和 Python3 內建函式一樣,這個程式庫會盡可能使用延遲評估。
Copybara
Copybara 是一種工具,可在存放區之間轉換及移動程式碼。
Dagger
Dagger 是適用於 Java 和 Android 的全靜態編譯時間依附元件插入架構。
DAML
DAML 是一種智慧合約語言,可在安全且注重隱私權的執行階段,建構可因應未來需求的分散式應用程式。
DeepMind Lab
可自訂的 3D 平台,適用於以代理程式為基礎的 AI 研究。
Drake
Drake 是由 MIT 啟動的 C++ 工具箱,現由 Toyota Research Institute 領導。這是一系列工具,用於分析機器人的動態,並為機器人建構控制系統,著重於以最佳化為基礎的設計/分析。
Envoy
C++ L7 Proxy 和通訊匯流排
容易出錯
將常見的 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 推出的即時分散式容錯串流處理引擎。
Jazzer
Jazzer 是適用於 Java 和其他 JVM 語言的模糊測試器,可與 JUnit 5 整合。
JGit
JGit 是輕量級的純 Java 程式庫,可實作 Git 版本控制系統。
Jsonnet
JSON 專用的正式指定設定產生語言,設計優雅。(Bazel 是支援的建構系統)。
Kubernetes
Kubernetes 是開放原始碼系統,可管理多部主機上的容器化應用程式,並提供應用程式部署、維護及調度資源的基本機制。
Kythe
可搭配程式碼使用的建構工具生態系統。
Nomulus
Google App Engine 上的頂層網域名稱註冊服務。
ONOS:開放網路作業系統
ONOS 是唯一支援從舊版「棕地」網路轉換至 SDN「綠地」網路的 SDN 控制器平台。這項技術可為網路營運商帶來令人振奮的新功能,以及顛覆性的部署和營運成本點。
適用於 Java 的 PetitParser
傳統上,程式設計語言的文法是靜態指定。 由於難免會出現模稜兩可的情況,因此難以編寫及重複使用。PetitParser 結合了無掃描器剖析、剖析器組合、剖析運算式文法和 Packrat 剖析器的概念,將文法和剖析器建模為可動態重新設定的物件。
PlaidML
PlaidML 是一個架構,可讓深度學習在任何地方運作。
Project V
Project V 是一組工具,可協助您透過網際網路建構自己的隱私權網路。
Prysmatic Labs Ethereum 2.0 實作
Prysm 是以太坊 2.0 的分片用戶端,以太坊 2.0 是以區塊鏈為基礎的分散式運算平台。
Ray
Ray 是彈性高效的分散式執行架構。
Resty
Resty 是 Go 適用的簡易 HTTP 和 REST 用戶端程式庫 (靈感來自 Ruby rest-client)。
Roughtime
Roughtime 專案的目標是提供安全的時鐘同步功能。
Selenium
Selenium 是可攜式架構,用於測試網頁應用程式。
語意
Semantic 是 Haskell 程式庫和指令列工具,用於剖析、分析及比較原始碼。這項技術由 GitHub 開發,可用於程式碼導覽等用途。
已放送
Served 是 C++ 程式庫,用於建構高效能的 RESTful 網路伺服器。
Sonnet
Sonnet 是以 TensorFlow 為基礎建構的程式庫,可用於建構複雜的類神經網路。
Sorbet
Sorbet 是 Ruby 子集的快速強大型別檢查工具。這項工具可擴充至數百萬行的程式碼集,並可逐步採用。
Spotify
Spotify 使用 Bazel 建構 iOS 和 Android 應用程式 (來源)。
Tink
Tink 是跨平台的多語言開放原始碼程式庫,提供安全、易於正確使用,且較難誤用的加密 API。
TensorFlow
這是利用機器智慧的開放原始碼軟體程式庫。
Turbo Santa
與平台無關的 GameBoy 模擬器。
Wycheproof
Project Wycheproof 會針對已知攻擊測試加密程式庫。
XIOSim
XIOSim 是 x86 架構的詳細使用者模式微架構模擬器。
ZhihuDailyPurify
ZhihuDailyPurify 是知乎日報的輕量版,知乎日報是中國的問答網站。