谁在使用 Bazel

报告问题 查看源代码

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

使用 Bazel 的公司

acqio

Acqio 是一家为中小型企业提供付款产品和服务的金融科技公司。Acqio 拥有少量单一代码库,将 Bazel 与 Kubernetes 搭配使用可以提供快速可靠的微服务。

Adobe

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

Asana

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

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

Ascend.io

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

蜂蜡

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

Braintree

Braintree 是 PayPal 子公司,致力于为网站和应用开发付款解决方案。该公司在内部构建的各个部分使用了 Bazel,保罗·格罗斯甚至发表了一篇关于如何改用 Bazel 的精彩文章

Canva

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 和分发流水线,以便管理多个多种语言的代码库,并无缝部署到众多平台。

华为

Huawei Technologies 在大约 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 后,我们在构建时间方面有了巨大的改进。这可以显著缩短 QA 期间的处理时间。向测试人员分发新版本时,无需再等待一个小时的构建和测试时间。(使用 Bazel 提升 iOS 版 LINE 的构建性能

LingoChamp

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

LinkedIn

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

Lucid Software

Lucid Software 是视觉协作领域的领军者,可帮助团队看到并构建从创意到现实的未来。借助其产品 LucidchartLucidsparkLucidscale,团队可以就共同的愿景达成一致,阐明复杂性并开展视觉协作,无论他们身在何处。

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

Lyft

Lyft 为其 iOS(来源)和 Android 应用使用了 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 将 Bazel 用于其后端服务。

贴靠

Snapchat 即时通讯应用的开发者已于 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 专注于 Uber 的自动驾驶车辆业务,包括卡车运输/货运和自动拼车服务。组织使用 Bazel 作为主要构建系统。

Vistar 媒体

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

VMware

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

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 是一款用于在代码库之间转换和移动代码的工具。

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 的项目。

Gitiles

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

Grakn

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

GRPC

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

gVisor

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

格兹利

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

Gulava

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

海洛因

Heron 是 Twitter 推出的一个实时、分布式、容错流处理引擎。

爵士乐

Jazzer 是 Java 及其他与 JUnit 5 集成的基于 JVM 语言的模糊测试工具。

JGit

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

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 是以太坊 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 子集。它既可以扩展到包含数百万行代码的代码库,也可以逐步采用。

Spotify

Spotify 使用 Bazel 构建他们的 iOS 和 Android 应用(源代码)。

Tink

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

TensorFlow

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

Turbo Santa

独立于平台的 GameBoy 模拟器。

Wycheproof

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

XIOSim

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

ZhihuDailyPurify

知乎每日净化是中国的问答网站,是知乎日的轻量版。