谁在使用 Bazel

报告问题 查看源代码

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

使用 Bazel 的公司

acqio

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

Adobe

Adobe 已针对 GitOps 驱动的连续 Kubernetes 部署发布了 Bazel 规则

Asana

Asana 是一款 Web 应用和移动应用,旨在帮助团队跟踪工作情况。 来源网站原文引述:

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

Ascend.io

Ascend 是一家位于帕洛阿尔托的初创公司,提供大型数据集分析解决方案。他们的座右铭是大数据很难,我们化繁为简

ASML

ASML 是半导体行业的创新领导者。我们为芯片制造商提供所需的一切(硬件、软件和服务),助力他们通过光刻板在芯片上大规模生产图案。

蜂蜡

Beeswax 是一家位于纽约的初创公司,提供实时出价即服务。Bazel 可为基于 Jenkins 的持续集成和部署框架提供支持。Beeswax 非常喜欢 Bazel,因为 Bazel 速度超快、准确无误,并且可以在多种语言和平台上获得良好支持。

布伦特里

Braintree 是 PayPal 的子公司,致力于开发适用于网站和应用的付款解决方案。他们使用 Bazel 完成内部构建的各个部分,Paul Gross 甚至发布了关于改用 Bazel 的精彩文章

Canva

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

CarGurus

CarGurus 的使命是打造世界上最值得信赖和最透明的汽车市场,并使用 Bazel 构建其多语言 monorepo。

罗盘

Compass 是一个技术驱动的房地产平台。我们组建了一支由房地产、技术和商务专业人员组成的精英团队,力求成为最优质、最值得信赖的找房者。

Databricks

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

Databricks 代码库是一个 Monorepo,其中包含为我们的大多数服务提供支持的 Scala 代码、用于前端界面的 JavaScript、用于脚本的 Python、用于配置基础架构的 Jsonnet 等等 [...] 尽管我们的 monorepo 包含一百万行 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 是由 Evertz Microsystems 创建的多租户无服务器 SaaS 平台,用于为广播媒体行业提供全球高性价比的多区域服务。

该网站通过 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 及其规则构建数以百万计的构建。

华为

华为技术在大约 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 构建的。

Line

Line 提供了一款即时通信应用,该应用是日本最热门的即时通讯应用。他们在包含约 60% Swift 和 40% C/C++/Objective-C/Objective-C++(源代码)的代码库上使用 Bazel。

改用 Bazel 后,我们能够在构建时间方面获得巨大改进。这大幅缩短了质量检查期间的周转时间。将新 build 分发给我们的测试人员无需再花一个小时等待构建和测试。(使用 Bazel 提升 LINE for iOS 的构建性能

LingoChamp

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

LinkedIn

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

Lucid 软件

Lucid Software 是视觉协作领域的佼佼者,帮助团队了解并构建从创意变为现实的未来。借助其产品(LucidchartLucidsparkLucidscale),团队可以围绕共同愿景保持一致、阐明复杂性并进行视觉协作,无论他们身在何处。

Lucid 使用 Bazel 构建了数百万行 Scala 和 TypeScript。 迁移到 Bazel 大大加快了构建速度,减少了对构建环境的外部依赖,并简化了开发者对构建系统的体验。Bazel 提高了 Lucid 的开发者工作效率,并实现了进一步的发展。

Lyft

Lyft 将 Bazel 用于其 iOS(来源)和 Android 应用。

聚会

Meetup 是一个在线社交网络门户,可用于促进线下群组会议。Meetup 工程团队为 rules_scala 做过贡献,并且是 rules_avrorules_openapi 的维护者。

Nvidia

在 Nvidia,我们一直使用 dazel(docker bazel) for python 来解决 bazel 的一些 python 短缺问题。所有其他内容都在普通 bazel 中运行(主要是 Go / Scala/ C++/ Cuda)(源代码

Peloton 技术

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

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 分钟,现在开发者 build 平均需要 5-6 分钟)。而且可靠性也要高得多。这更难以量化,但从无法解释的构建失败这种“刚发生的事情”转变为被视为需要解决的真实问题,我们进入了可靠性不断提高的良性循环。(我们从 Maven 改为使用 Bazel,构建速度提高了 10 倍

仪式感

Ritual 是一款移动取餐应用,可帮助餐馆与客户建立联系,提供一种简单、省时的工具,让顾客无需等待,即可享用所需的食品和饮料。Ritual 将 Bazel 用于其后端服务。

贴靠

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

Stripe

Stripe 提供移动付款解决方案。他们在构建和测试流水线中使用了 Bazel,详见其工程博客

Tinder

Tinder 于 2021 年将其 iOS 应用从 CocoaPods 迁移到 Bazel(来源)。

Tink

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

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

Tokopedia

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

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

Trunk.io

Trunk 是一家总部位于旧金山的公司,由 Andreessen Horowitz 和 Initialized Capital 提供支持。Trunk 提供强大的拉取请求合并服务,并为 Bazel 构建系统提供一流的支持。利用 Bazel 对代码库依赖项的理解,Trunk 的合并服务会智能地创建并行合并通道,允许同时测试和合并独立的更改。

Trunk 的内部 monorepo 能够构建现代 C++ 20 和 Typescript,同时利用 bazel 图知识选择性地测试和合并代码。

Twitter

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

双西格玛

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

Uber

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

优步先进技术集团

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

Vistar Media

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

VMware

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

Wix

Wix 是一个基于云的 Web 开发平台。其后端使用 Java 和 Scala 代码。他们将远程执行与 Google Cloud Build 结合使用。

我们发现,使用 bazel 远程执行运行时,整洁构建的速度可提升约 5 倍。bazel 远程执行可利用 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 Lab

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

德雷克

Drake 是一个 C++ 工具箱,最初来自麻省理工学院,现由丰田研究所领导。该工具包包含一系列工具,用于分析我们的机器人的动力学并为其构建控制系统,其重点是基于优化的设计/分析。

Envoy

C++ L7 代理和通信总线

容易出错

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

Extensible Service Proxy

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

FFruit

FFruit 是一款免费的开源 Android 应用,适用于热门服务 Falling Fruit

Gerrit 代码审核

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

十字架

Gitiles 是面向 Git 代码库的简单代码库浏览器,基于 JGit 构建而成。

Grakn

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

GRPC

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

gVisor

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

Guetzli

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

古拉瓦

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

海恩

Heron 是 Twitter 提供的实时、分布式、容错型流处理引擎。

爵士乐

Jazzer 是适用于 Java 和其他与 JUnit 5 集成的基于 JVM 的模糊测试工具。

JGit

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

Jsonnet

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

Kubernetes

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

Kythe

一个生态系统,用于构建可处理代码的工具。

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 的分片客户端,Ethereum 2.0 是一个基于区块链的分布式计算平台。

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

弹性

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

粗略时效

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

Selenium

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

语义

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

已投放

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

十四行诗

Sonnet 是一个基于 TensorFlow 构建的库,用于构建复杂的神经网络。

雪糕

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

Spotify

Spotify 使用 Bazel 构建 iOS 和 Android 应用(来源)。

Tink

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

TensorFlow

面向机器智能的开源软件库。

Turbo Santa

独立于平台的 GameBoy 模拟器。

TypeDB

TypeDB 徽标

借助 Bazel,TypeDB 团队可以构建高度编排的 CI 和分发流水线,该流水线管理使用各种语言的多个代码库,并无缝部署到众多平台。TypeDB 团队还发布了用于组装和部署软件发行版的 Bazel 规则。

Wycheproof

Project Wycheproof 针对已知攻击测试加密库。

XIOSim

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

ZhihuDailyPurify

ZhihuDailyPurify 是中国的问答式网站“知乎日”的轻量版。