谁在使用 Bazel

本页面列出了已知使用 Bazel 的公司和 OSS 项目。 这并不构成背书。

使用 Bazel 的公司

acqio

Acqio 是一家为中小型企业提供付款产品和服务的金融技术公司。Acqio 拥有一些 monorepo,它使用 Bazel 和 Kubernetes 来提供快速可靠的微服务。

Adobe

Adobe 发布了 Bazel 规则,适用于 GitOps 驱动的持续 Kubernetes 部署。

Asana

Asana 是一款 Web 应用和移动应用,旨在帮助团队跟踪工作进度。 作者/网站原文引述:

Bazel 提高了 Asana 的所有构建/测试的可靠性、稳定性和速度。我们不再需要清理不正确的缓存。

Ascend.io

Ascend 是帕洛阿尔托的一家初创公司,提供大型数据集分析解决方案。他们的座右铭是“大数据很难。我们让一切简单易行

蜂蜡

Beeswax 是一家总部位于纽约的初创公司,提供实时出价即服务。Bazel 为其基于 Jenkins 的持续集成和部署框架提供支持。Beeswax 非常喜欢 Bazel,因为 Bazel 速度快、正确,并且支持多种语言和平台。

Braintree

Braintree 是 PayPal 子公司,致力于为网站和应用开发付款解决方案。他们使用 Bazel 构建了内部构建流程,Paul Gross 甚至发布了一段有关如何改用 Bazel 的精彩文章

画布

Canva 利用 Bazel 管理其大型多语言代码库,其中包括 Java、TypeScript、Scala、Python 等。迁移到 Bazel 显著提高了开发者和计算基础架构的效率,例如 CI 构建时间平均缩短了 5-6 倍,并且它继续成为了公司快速、可重现的标准化软件构建的基础。

CarGurus

CarGurus 的使命是打造全球最可信、最透明的汽车市场,并使用 Bazel 来构建其多语言 monorepo。

罗盘

Compass 是一个技术驱动的房地产平台。我们拥有由房地产、技术和商业专业人士组成的精英团队,致力于成为最优质、最值得信赖的找房者。

Databricks

Databricks 基于 Apache SparkTM 提供基于云的集成式工作区。

Databricks 代码库是一个 Monorepo,其中包含为我们的大多数服务提供支持的 Scala 代码、用于前端界面的 JavaScript、用于编写脚本的 Python、用于配置基础架构的 Jsonnet 等等 [...] 尽管我们的 monorepo 包含 100 万行 Scala,但其中处理代码既快速又快捷。(在 Databricks 中使用 Bazel 快速构建 Scala

Dataform

Dataform 为数据团队提供可扩缩的分析。他们在一个 monorepo 中维护了一些 NPM 软件包和一个文档网站,并且使用 Bazel 完成了所有工作。

迁移到 Bazel 后,他们指出了许多好处,包括:

  • 加快 CI:我们启用了远程构建缓存,将整个代码库的平均构建时间从 30 分钟缩短到了 5 分钟。
  • 本地开发改进:不再是忘记运行的随机 bash 脚本,增量构建缩短至数秒时间(数秒后)
  • 开发者设置时间:新工程师只需 3 个依赖项(bazel、docker 和 JVM)即可构建所有代码。最后一位加入我们团队的工程师都成功在不到 30 分钟的时间内在一台全新的空白笔记本电脑上构建了我们的所有代码

深银色 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 是一个多租户、无服务器 SaaS 平台,由 Evertz Microsystems 创建,为广播媒体行业提供全球性价比高的多区域服务。

使用 Angular 和 Bazel 工作流完整构建并部署了网站(源代码)。

查找

FINDMINE 是面向零售业的一种自动化技术,它使用机器学习技术来扩展目前繁琐的手动商品挑选流程。我们使用 Bazel 来实现整个 Python 软件包的构建、测试和部署流程。

Flexport

Flexport 是一家技术型全球货运代理公司;我们的使命是让每个人都能更轻松地开展全球贸易。在 Flexport,我们使用 Bazel 来构建/测试 Java/JavaScript 服务和客户端库,以及根据 protobuf 定义生成 Java 和 Ruby 代码。了解我们如何使用 Bazel 单独运行 JUnit 5 的各项测试。

Google

Bazel 能够适应 Google 的需求,并满足 Google 的可重现性和平台/语言支持要求。Google 的所有软件都是使用 Bazel 构建的Google 每天都在处理数百万次构建,使用 Bazel 及其规则。

GRAKN.AI

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 公司

Kitty Hawk Corporation 是一家生产电动飞机的美国飞机制造商。它们将 Bazel 与 Haskell 和 Scala 规则结合使用。

Line

Line 提供了一款即时通讯应用,即时通讯应用是日本最受欢迎的即时通讯应用。他们在其代码库中使用 Bazel,代码库约有 60% 的 Swift 和 40% 的 C/C++/Objective-C/Objective-C++(源代码)。

改用 Bazel 后,我们在构建时间上取得了巨大的缩短。这显著缩短了质量检查期间的周转时间。向测试人员分发新的 build 无需再额外等待一个小时的构建和测试时间。(使用 Bazel 提升 iOS 版 LINE 的构建性能

LingoChamp

LingoChamp 为英语学习者提供专业的解决方案。我们用 Bazel 来处理 go、java 和 python 项目

LinkedIn

LinkedIn 是 Microsoft 的子公司,是全球最大的职业社交网络。LinkedIn 使用 Bazel 构建其 iOS 应用。

Lyft

Lyft 为其 iOS 应用使用了 Bazel(来源)。

Makani

Makani 现已成为 Google 的子公司,专门开发能源风筝,并使用 Bazel 来构建软件(包括嵌入式 C++ 软件)。

交流会

Meetup 是一个在线社交网络门户,能够为线下群组会议提供便利。Meetup 工程团队为 rules_scala 做贡献,是 rules_avrorules_openapi 的维护者。

Nvidia

在 Nvidia,我们一直使用 dazel(docker bazel) for Python 解决 bazel 的 Python 问题。其他所有代码都在常规 bazel 中运行(大部分是 Go / Scala/ C++/ Cuda)(来源

Peloton Technology

Peloton Technology 是一家自动化车辆技术公司,致力于解决卡车事故和燃料使用问题。他们使用 Bazel 来为汽车安全系统实现可靠的构建

Pinterest

Pinterest 是全球的创意目录。它们使用 Bazel 构建各种后端服务 (Java/C++) 和 iOS 应用 (Objective-C/C++)。

我们发现 Bazel 最适合我们的目标,让我们为实现大幅提升性能、消除构建环境中的可变性以及逐步采用这些目标奠定基础。因此,我们现在 使用 Bazel 来发布所有 iOS 版本使用 Pinterest 开发快速可靠的 iOS build

PubRef

PubRef 是一个新兴的科学发布平台。它们使用 Bazel 和 rules_closure 构建前端,使用原生 Java 规则构建主后端,使用 rules_gorules_noderules_kotlin 构建各种后端服务。rules_protobuf 用于协助后端服务之间基于 gRPC 的通信。PubRef.org 位于科罗拉多州博尔德。

Redfin

Redfin 是新一代房地产经纪公司,拥有全方位服务本地代理。他们使用 Bazel 构建和部署网站以及各种后端服务。

由于这次转化大多落后于我们,因此情况有了很大的改善!我们的 CI 构建速度更快(速度更快:以前需要 40 到 90 分钟,而现在开发者构建平均需要 5 到 6 分钟)。可靠性也要高得多。这更难以量化,但从无法解释的构建失败“只是偶然”转变为被视为需要解决的真正问题的转变使我们陷入了可靠性不断提高的良性循环。(我们从 Maven 改为使用 Bazel,构建的速度提高了 10 倍

Ritual 政策

Ritual 是一款移动取餐应用,可将餐厅与客户联系起来,提供一款省时简单、省时的工具,让用户无需等待即可买到想要的食品和饮料。Ritual 使用 Bazel 作为其后端服务。

贴靠

Snapchat 即时通讯应用的开发者已于 2020 年从 Buck 迁移到 Bazel(来源)。如需详细了解其流程,请参阅其工程博客

Stripe

Stripe 提供移动支付解决方案。他们是 Bazel Scala 规则的主要维护者。

Tink

Tink 是一家欧洲金融技术公司,致力于打造连接欧洲各地银行的最佳方式。

他们使用 Bazel 通过多语言 monorepo 构建后端服务。Tink 的工程师正在组织 bazel build //stockholm/... 聚会小组。

Tokopedia

Tokopedia 是印度尼西亚的一家专精电子商务领域的技术公司,该平台上的月活跃用户数超过 9000 万,商家数量超过 700 万。

他们撰写了 Tokopedia 如何实现 1000% 更快的 iOS 构建时间一文,在其中介绍了 Bazel 如何加快构建速度。使用 Bazel 后,构建时长从 55 分钟缩短到 10 分钟;使用远程缓存后,构建时长缩短到 5 分钟。

Twitter

Twitter 已决定从 Pants 迁移到 Bazel,并将其作为其主要构建工具(来源)。

两西格玛

Two Sigma 是一家总部位于纽约的技术公司,致力于从全球数据中挖掘价值。

Uber

Uber 是一家约车公司。Uber 的 Go Monorepo 有 900 名活跃的开发者,很有可能是使用 Bazel 规模最大的 Go 代码库之一。如需详细了解他们的体验,请参阅使用 Bazel 构建 Uber 的 Go Monorepo 一文。

优步高级技术集团

Uber Advanced Technologies Group 专注于 Uber 的自动驾驶车辆服务,包括卡车运输/货运和自动驾驶拼车。该组织使用 Bazel 作为其主要构建系统。

Vistar Media

Vistar Media 是一个广告平台,可帮助品牌根据消费者在现实世界中的行为来吸引他们。他们的工程团队主要位于费城,使用 Bazel 来构建、部署、加快测试以及整合使用各种不同技术编写的代码库。

VMware

VMware 使用 Bazel 来为客户开发创新产品,同时生成确定性、可靠的 build。

Wix

Wix 是一个云端 Web 开发平台。其后端使用 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 是一种流行的 Web 框架。Angular 是使用 Bazel 构建的。

阿波罗

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 实验室

一个可自定义的 3D 平台,适用于基于代理的 AI 研究。

德雷克

Drake 任职于麻省理工学院,是一个 C++ 工具箱,现任丰田研究所主管。该工具包包含一系列工具,用于分析机器人的动态以及为机器人构建控制系统,并且着重于基于优化的设计/分析。

Envoy

C++ L7 代理和通信总线

容易出错

将常见的 Java 错误捕获为编译时错误。(正在迁移到 Bazel。)

Extensible Service Proxy

可扩展服务代理(也称为 ESP)是一种代理,可为 JSON/REST 或 gRPC API 服务实现 API 管理功能。目前的实现基于 NGINX HTTP 反向代理服务器。

FFruit

FFruit 是一款面向热门服务 Falling Fruit 的免费开源 Android 应用。

Gerrit 代码审核

Gerrit 是一款代码审核和项目管理工具,适用于基于 Git 的项目。

Gitile

Gitiles 是适用于 Git 代码库的简单代码库浏览器,基于 JGit 构建。

Grakn

Grakn (https://grakn.ai/) 是一个知识图谱引擎,用于组织复杂的数据网络并使其可查询。

GRPC

独立于语言和平台的远程过程调用系统。(Bazel 是受支持的构建系统,但不是主要构建系统。)

gVisor

gVisor 是一个容器运行时沙盒。

格茨利

Guetzli 是一种 JPEG 编码器,旨在实现出色的压缩密度和高视觉质量。

Gulava

Java 代码生成器,可让您编写 Prolog 样式的谓词,并在普通 Java 代码中无缝使用它们。

海恩

Heron 是 Twitter 推出的一个具有容错能力的实时流式处理引擎。

JGit

JGit 是一个实现 Git 版本控制系统的轻量级纯 Java 库。

Jsonnet

用于 JSON 的优雅、正式指定的配置生成语言。(Bazel 是受支持的构建系统。)

Kubernetes

Kubernetes 是一个开源系统,用于跨多个主机管理容器化应用,并提供用于部署、维护和扩缩应用的基本机制。

凯斯

一个生态系统,用于构建可与代码搭配使用的工具。

Nomulus

Google App Engine 上的顶级域名注册服务。

ONOS:开放式网络操作系统

ONOS 是唯一支持从旧版“棕地”网络向 SDN“绿野”网络过渡的 SDN 控制器平台。这可为网络运营商带来激动人心的新功能,并带来破坏性部署和运营成本点。

Java 版 PetitParser

编程语言的语法历来都是以静态方式指定的。由于不可避免地存在歧义,它们难以组合和重复使用。PetitParser 将无扫描分析解析、解析器组合、解析表达式语法和 packrat 解析器等各种理念结合起来,将语法和解析器构建为可动态重新配置的对象。

PlaidML

PlaidML 是一种让深度学习随时随地都能使用的框架。

项目 V

Project V 是一组工具,可帮助您通过互联网构建自己的隐私网络。

Prysmatic Labs 以太坊 2.0 实现

Prysm 是 Ethereum 2.0(一个基于区块链的分布式计算平台)的分片客户端。

光线

Ray 是一种灵活、高性能的分布式执行框架。

Resty

Resty 是一个适用于 Go 的简单 HTTP 和 REST 客户端库(灵感来自 Ruby rest-client)。

艰难时刻

Roughtime 是一个旨在提供安全的时间同步的项目。

Selenium

Selenium 是一个用于测试 Web 应用的可移植框架。

语义

语义是一个 Haskell 库和命令行工具,用于解析、分析和比较源代码。它由 GitHub 开发(例如用于代码导航)。

已投放

Served 是一个用于构建高性能 RESTful Web 服务器的 C++ 库。

十四行诗

Sonnet 是以 TensorFlow 为基础构建的库,用于构建复杂的神经网络。

雪糕

Sorbet 是一款快速而强大的类型检查工具,适用于 Ruby 的子集。它可以扩容到包含数百万行代码的代码库,而且可以逐步采用。

Tink

Tink 是一个多语言、跨平台的开源库,提供安全、易于使用且难以滥用的加密 API。

TensorFlow

适用于机器智能的开源软件库。

涡轮圣诞老人

独立于平台的 GameBoy 模拟器。

万无一失

“Wycheproof”项目针对已知攻击测试加密库。

XIOSim

XIOSim 是适用于 x86 架构的详细用户模式微架构模拟器。

ZhihuDailyPurify

知乎每日净化是知乎日报的轻量版,它是一个中文问答式网站。