本页面列出了已知使用 Bazel 的公司和 OSS 项目。这并不代表品牌认可。
使用 Bazel 的公司
ACQIO
Acqio 是一家金融机构,为中小型企业提供付款产品和服务。Acqio 拥有一些单一代码库,并使用 Bazel 和 Kubernetes 来提供快速可靠的微服务。
Adobe
Adobe 发布了适用于 GitOps 驱动的连续 Kubernetes 部署的 Bazel 规则。
朝阳
Asana 是一个可帮助移动应用跟踪团队工作的网络和移动应用。 来源网站原文引述:
Bazel 提高了 Asana 的所有构建/测试的可靠性、稳定性和速度。我们因为缓存不正确而不再需要清理。
Ascend.io
Ascend 是一家 Palo Alto 初创公司,为大型数据集分析提供解决方案。座右铭是大数据不易。我们就是这么简单。
蜜蜂
Beeswax 是一家位于纽约的初创公司,提供实时出价即服务。Bazel 支持基于 Jenkins 的持续集成和部署框架。Beeswax 钟爱 Bazel,因为它不仅速度快、准确性高,在许多语言和平台上也受支持。
雨林
PayPal 子公司 Braintree 为网站和应用开发付款解决方案。他们将 Bazel 用于其内部构建的部分环节,Paul 也因此发表了一篇关于改用 Bazel 的很好文章。
Canva
Canva 利用 Bazel 来管理其庞大的多语言图形代码库,其中包括 Java、TypeScript、Scala、Python 等。迁移到 Bazel 可以显著提高开发者和计算基础架构的效率,例如将 CI 构建平均时间降低 5-6 倍,而且继续成为该公司快速、可重现的标准化软件 build 的基础。
CarGurus
CarGurus 的使命是构建全球最值得信赖和最透明的汽车市场,并使用 Bazel 构建自己的多语言图形单一代码库。
罗盘
罗盘是一个技术驱动的房地产平台。我们拥有一支优秀的房地产、技术和商业专业人士团队,致力于成为咨询者心目中最优质、最值得信赖的来源。
Databricks
Databricks 提供基于 Apache SparkTM 的云端集成工作区。
Databricks 代码库是一个 Monorepo,其中包含为大多数服务提供支持的 Scala 代码、用于前端界面的 JavaScript、用于编写脚本的 Python、用于配置基础架构的 Jsonnet 以及更多其他 [...],即使我们的 monorepo 包含 100 行 Scala,快速又快速地处理代码即可。(在 Databricks 上借助 Bazel 快速构建 Scala 应用)
Dataform
Dataform 为数据团队提供可扩缩的分析服务。他们维护着几个 NPM 软件包,并在一个单一代码库内提供一个文档网站,并使用 Bazel 完成这一切。
迁移到 Bazel 后,他们报告了诸多优势,包括:
- CI 更快速:我们启用了远程构建缓存,将平均构建时间从 30 分钟缩短为 5(对于整个代码库)。
- 本地开发改进:再也不用忘记要运行的随机 bash 脚本,让增量构建从数分钟缩短到数秒
- 开发者设置时间:新工程师只需 3 个依赖项(bazel、docker 和 JVM)即可构建所有代码。我们团队只有一位加入 Google 的工程师只花了不到 30 分钟时间就在一台全新的空白笔记本电脑上构建了所有代码
深银色 FISHLAB
深银 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 是一个多租户无服务器 SaaS 平台,面向 Evertz Microsystems 创建的广播媒体行业提供全球经济高效的多区域服务。
网站使用 Angular 和 Bazel 工作流(源代码)完全构建和部署。
查找
FINDMINE 是零售行业的自动化技术,使用机器学习技术来扩展目前人工、繁琐的产品挑选流程。我们使用 Bazel 对整个 Python 软件包构建、测试和部署过程进行机械化。
Flexport
Flexport 是技术赋能的全球货运公司;我们的使命是让全球每个人都能更轻松地进行全球贸易。在 Flexport,我们使用 Bazel 来构建/测试 Java/JavaScript 服务和客户端库,并通过 protobuf 定义生成 Java 和 Ruby 代码。了解我们如何使用 Bazel 单独运行 JUnit 5 测试。
Bazel 能够适应 Google 的需求,并能满足 Google 的可再现性和平台/语言支持要求。Google 的所有软件都是使用 Bazel 构建的。Google 每天对数百万个构建使用 Bazel 及其规则。
GRAKN.AI
Grakn 是一种数据库技术,可作为智能系统的知识库基础。Grakn 允许智能系统将复杂的数据集解读为可在逻辑上进行推断的单个知识体。通过 Bazel,@graknlabs 团队构建了一个精心编排的 CI 和分发流水线,可以管理多种语言的多个代码库,并且可无缝部署到众多平台。
华为
华为技术在大约 30 个项目中使用 Bazel 是 Java/Scala/Go 项目,Go 项目除外,其他项目是由 Maven 构建的。我们编写了一个简单的工具,用于将 Maven 构建的项目转换为 Bazel 构建的项目。近期,越来越多的项目会使用 Bazel。
IMC 交易
IMC 是一家总部位于阿姆斯特丹的全球专有交易公司和做市商。我们使用 Bazel 来持续构建和测试 Java/C++/Python/SystemVerilog 项目。
Improbable.io
Improbable.io 开发了一种 SpatialOS,它是一种分布式操作系统,能够创建数百万复杂实体驻留的大型模拟。
Interaxon
InteraXon 是一家思想控制的计算公司,致力于打造硬件和软件平台,将大波转化为数字信号。
木星
Jupiter 是一家每周提供杂货和家居用品送货服务的公司。
他们将 Bazel 用于后端代码,专门通过远程缓存将 proto 和 Kotlin 编译为 JVM 二进制文件。(来源)
刚刚
Just 是一家总部位于挪威的金融金融公司,致力于打造软件解决方案,以改变全球企业财务管理风险和流动性。它们的整个应用堆栈都是使用 Bazel 构建的。
Kitty Hawk Corporation
Kitty Hawk 公司是一家生产电动飞机的美国飞机制造商。他们将 Bazel 与 Haskell 和 Scala 规则结合使用。
折线图
Line 提供了一款即时通讯应用,这是日本最受欢迎的即时通讯应用。 他们在其代码库中使用 Bazel,其中包含 60% 的 Swift 和 40% C/C++/Objective-C/Objective-C++(源代码)。
改用 Bazel 后,我们在构建时间取得了巨大提升。这显著提升了质量检查期间的周转时间。将新 build 分发给测试人员不再意味着需要再等待一个小时来构建和测试。(借助 Bazel 提升 LINE for iOS 的构建性能)
LingoChamp
LingoChamp 为英语学习者提供专业解决方案。我们使用 Bazel 来处理 go、java 和 python 项目。
LinkedIn 是 Microsoft 的子公司,是全球最大的职业社交网络。LinkedIn 使用 Bazel 来构建其 iOS 应用。
Lucid 软件
Lucid Software 是视觉协作领域的领导者,致力于帮助团队看到和构建从创意到现实的未来。使用 Lucidchart、Lucidspark 和 Lucidscale 产品,团队可以就共同的愿景达成一致,澄清复杂性,并开展视觉协作,无论他们身在何处。
Lucid 使用 Bazel 构建数百万行 Scala 和 TypeScript。迁移到 Bazel 显著提高了其构建速度,减少了对构建环境的外部依赖性,并简化了开发者使用构建系统的体验。Bazel 提高了 Lucid 的开发者工作效率,并进一步解锁了增长机会。
Lyft
Lyft 为其 iOS(源代码)和 Android 应用使用 Bazel。
马卡尼
Makani 现在是 Google 的子公司,负责开发风筝,并使用 Bazel 构建软件(包括嵌入式 C++ 软件)。
聚会
Meetup 是一个在线社交网络门户,可促进线下群组会议。Meetup 工程团队负责为 rules_scala 做贡献,并且是 rules_avro 和 rules_openapi 的维护者。
Nvidia
在 Nvidia,我们一直在使用 dazel(docker bazel) 处理 Python 代码,以解决 bazel 的一些 Python 即将发布的问题。所有其他项都在普通 Bazel 中运行(主要是 Go / Scala/ C++/ Cuda)(源代码)
领航技术
Peloton 技术是一家自动化汽车技术公司,致力于解决卡车事故和燃料使用情况。它们使用 Bazel 来为汽车安全系统启用可靠的 build。
Pinterest 是全世界的创意目录。它们使用 Bazel 来构建各种后端服务 (Java/C++) 和 iOS 应用 (Objective-C/C++)。
我们发现,Bazel 非常适合为我们的目标奠定基础,让性能大幅提升,消除构建环境中的差异并逐步采用。因此,我们现在使用 Bazel 发布我们的所有 iOS 版本。利用 Pinterest 开发快速可靠的 iOS build
PubRef
PubRef 是一个崭露头角的科学发布平台。它们使用 Bazel 和 rules_closure 来构建前端,使用原生 java 规则来构建主后端,使用 rules_go、rules_node 和 rules_kotlin 来构建各种后端服务。rules_protobuf 用于协助后端服务之间的基于 gRPC 的通信。PubRef.org 位于科罗拉多州博尔德。
红芬
Redfin 是提供全方位服务本地代理的下一代房地产经纪公司。它们使用 Bazel 来构建和部署网站和各种后端服务。
由于转化主要在我们的身后,因此效果非常显著!我们的 CI 构建速度更快(大大加快):以前只需 40 - 90 分钟,现在开发 build 平均只需 5 - 6 分钟。可靠性也大大提高。这更难以量化,但从“无法解释的构建失败”变为“恰好会发生”,变为可解决的真正问题,这使我们进入了不断提高的可靠周期。(我们从 Maven 转为 Bazel,构建速度加快了 10 倍)
Ritual
Ritual 是一款移动自提应用,旨在将餐厅与客户联系起来,提供一种可节省时间的简单工具,让用户无需等待就能获得想要的食物和饮料。Ritual 使用 Bazel 作为后端服务。
贴靠
Snapchat 即时通讯应用的开发者 Snap 已于 2020 年从 Buck 迁移到 Bazel(来源)。如需详细了解相关流程,请参阅其工程博客。
Stripe
Stripe 提供移动付款解决方案。他们是 Bazel Scala 规则的主要维护者。
Tinder
2021 年,Tinder 将其 iOS 应用从 CocoaPods 迁移到 Bazel(来源)。
Tink
Tink 是一种欧洲金融技术公司,致力于打造连接欧洲银行的最佳方式。
他们使用 Bazel 从 polyglot monorepo 构建后端服务。Tink 的工程师正在组织 bazel build //stockholm/... 聚会小组。
Tokopedia
Tokopedia 是一家印度尼西亚的专业电子商务公司,月活跃用户数超过 9000 万,平台上商家超过 700 万。
他们撰写了文章 Tokopedia 如何实现 1000% 的 iOS 构建速度提升 1000%,从而解释了 Bazel 如何加速构建。使用 Bazel 后,构建时长从 55 分钟缩短为 10 分钟,使用远程缓存缩短了 5 分钟。
Twitter 决定从 Pants 迁移到 Bazel 作为其主要构建工具(源代码)。
两西格玛
Two Sigma 是一家总部位于纽约的技术公司,致力于发掘全球数据的价值。
Uber
Uber 是一家约车公司。Uber 的 Go monorepo 有 900 名活跃开发者,很可能是使用 Bazel 的最大 Go 代码库之一。如需详细了解他们的经验,请参阅文章使用 Bazel 构建 Uber 的 Go Monorepo。
Uber Advanced Technologies Group
Uber Advanced Technologies Group 专注于 Uber 的自动驾驶车辆服务,包括卡车/货运和自动驾驶型拼车服务。该组织使用 Bazel 作为其主要构建系统。
Vistar Media
Vistar Media 是一个广告平台,可帮助品牌根据消费者在现实世界中的行为覆盖消费者。他们的工程团队主要基于费城,并使用 Bazel 进行构建、部署、加速测试以及整合使用各种不同技术编写的代码库。
VMware
VMware 使用 Bazel 为客户开发确定性、可靠的 build,同时为其客户开发创新产品。
Wix
Wix 是一个云端 Web 开发平台。他们的后端使用 Java 和 Scala 代码。它们使用 Google Cloud Build 的远程执行。
我们发现,在使用 Bazel 远程执行运行时,干净 build 的运行速度提高了 5 倍左右,利用 Bazel 出色的构建/测试并行功能将调度/测试操作分派给工作器农场。得益于 Bazel 的积极缓存机制的利用,平均构建速度提高了 10 倍以上。 (从 Maven 或 Gradle 迁移到 Bazel?您应该思考的 5 个关键问题)
Zenly
Zenly 是朋友和家人的实时地图,聚会是最有趣的聚会方式,你也可以只是看看有哪些最新动态!— 即使天各一方,也能一同感受。
使用 Bazel 的开源项目
阿布西尔
Abseil 是一系列 C++ 代码(符合 C++11)的开源集合,旨在增强 C++ 标准库。
Angular
Angular 是一种常用的 Web 框架。Angular 是使用 Bazel 构建的。
阿波罗
Apollo 是一种高性能、灵活的架构,可加快自动驾驶车辆的开发、测试和部署。
PCPC
适用于整个百度的工业级 RPC 框架,在百度内部具有超过 100 万个实例(不统计客户端)和数千种服务(称为“baidu-rpc”)。
cert-manager 证书
cert-manager 是一个 Kubernetes 插件,用于自动管理和颁发各种颁发来源的 TLS 证书。这可确保证书定期有效且处于最新状态,并会在过期之前于适当时间续订证书。
CallBuilder
Java 代码生成器,可用于通过编写一个函数来创建构建器。
CPPItertools
提供基于范围的循环插件的 C++ 库,其灵感源自 Python 内置库和 Itertools 库。与迭代器和 Python3 内置项一样,此库会尽可能使用延迟求值。
文案
Copybara 是一款用于在代码库之间转换和移动代码的工具。
Dagger
Dagger 是适用于 Java 和 Android 的完全静态的编译时依赖项注入框架。
DAML
DAML 是一种智能的合同语言,用于在注重隐私保护的安全运行时中构建面向未来的分布式应用。
DeepMind 实验室
用于基于代理的 AI 研究的可自定义 3D 平台。
德雷克
Drake 是一个从麻省理工学院创立的 C++ 工具箱,现在由丰田研究院创立。它包含一系列用于分析机器人动态和为它们构建控制系统的工具,尤其侧重于基于优化的设计/分析。
Envoy
C++ L7 代理和通信总线
易出错
将常见的 Java 错误捕获为编译时错误。(正在迁移到 Bazel)。
Extensible Service Proxy
Extensible Service Proxy(也称为 ESP)是一种代理,可为 JSON/REST 或 gRPC API 服务启用 API 管理功能。当前的实现基于 NGINX HTTP 反向代理服务器。
果味
FFruit 是一款热门开源应用 Falling Fruit 的免费开源 Android 应用。
Gerrit 代码审核
Gerrit 是一款基于 Git 的项目的代码审核和项目管理工具。
图块
Gitiles 是适用于 Git 代码库的简单代码库浏览器,基于 JGit 构建。
Grakn
Grakn (https://grakn.ai/) 是知识图谱引擎,用于整理复杂的数据网络并使其可查询。
GRPC
一种语言和平台中立的远程过程调用系统。(Bazel 虽然受支持,但并非主要构建系统。)
gVisor
gVisor 是容器运行时沙盒。
盖兹利
Guetzli 是一种 JPEG 编码器,旨在以较高的视觉质量实现出色的压缩密度。
古拉瓦
一个 Java 代码生成器,让您可以编写 Prolog 样式的谓词,并在普通 Java 代码中无缝使用它们。
主打图片
Heron 是 Twitter 上一款支持分布式实时流式处理的实时引擎。
爵士乐
Jazzer 适用于 Java 和其他基于 JVM 的语言,与 JUnit 5 集成。
JGit
JGit 是一个精简的纯 Java 库,用于实现 Git 版本控制系统。
Jsonnet
一种优雅的正式指定配置生成语言,用于 JSON。(Bazel 是受支持的构建系统)。
Kubernetes
Kubernetes 是一种跨多个系统管理容器化应用的开源系统,为应用部署、维护和扩缩提供基本机制。
小凯
可构建支持代码的工具的生态系统。
诺莫鲁斯
Google App Engine 上的顶级域名注册服务。
ONOS:开放网络操作系统
ONOS 是唯一支持从旧版“棕色字段”网络转换为 SDN“绿色字段”网络的 SDN 控制器平台。这将带来令人激动的新功能,以及网络运营商的中断部署和运营成本点。
适用于 Java 的 PetitParser
编程语言的语法一直都是静态指定的。 由于难以避免地存在模糊性,它们很难撰写和重复使用。 PetitParser 结合了无扫描器解析、解析器组合器、解析表达式语法和 packrat 解析器,将语法和解析器建模为可动态重新配置的对象。
PlaidML
PlaidML 是一个让随时随地都能使用深度学习的框架。
项目 V
Project V 是一套工具,可帮助您通过互联网构建自己的隐私保护网络。
物理实验室以太坊 2.0 实现
Prysm 是基于区块链的分布式计算平台 Ethereum 2.0 的分片客户端。
Ray
Ray 是一个灵活的高性能分布式执行框架。
Resty
Resty 是适用于 Go 的简单 HTTP 和 REST 客户端库(从 Rubyrest-client 中获取)。
大致时间
Roughtime 项目旨在提供安全的时间同步。
Selenium
Selenium 是用于测试 Web 应用的便携式框架。
语义
Semantic 是一款用于解析、分析和比较源代码的 Haskell 库和命令行工具。它由 GitHub 开发(例如用于代码导航)。
已投放
Served 是一个 C++ 库,用于构建高性能 RESTful 网络服务器。
Sonnet
Sonnet 是以 TensorFlow 为基础构建的库,用于构建复杂的神经网络。
雪糕
Sorbet 是一款快速、强大的类型检查工具,适用于部分 Ruby。它可以扩容至有数百万行代码的代码库,并且可以逐步采用。
Spotify
Spotify 使用 Bazel 构建 iOS 和 Android 应用(来源)。
Tink
Tink 是一种多语言、跨平台的开源库,提供安全、易于使用且难以滥用的加密 API。
TensorFlow
用于机器智能的开源软件库。
Turbo Santa
独立于平台的 GameBoy 模拟器。
可威士忌
Project Wycheproof 可测试加密库来防范已知攻击。
XIOSim
XIOSim 是适用于 x86 架构的详细用户模式微架构模拟器。
ZhuhuDailyPurify
ZhuhuDailyPurify 是中文问答网的轻量级版本,也是 Zhihu Daily。