谁在使用 Bazel

本页列出了已知使用 Bazel 的公司和 OSS 项目。这并不代表对 Google Ads 的认可。

使用 Bazel 的公司

acqio

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

Adobe

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

Asana

Asana 是一个 Web 和移动应用,旨在帮助团队跟踪工作。用自己的话说:

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

Ascend.io

Ascend 是一个 Palo Alto 初创公司,提供用于大型数据集分析的解决方案。他们的主旨是大数据并非易事。我们让操作变得简单

蜂蜡

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

Braintree

Braintree 是 PayPal 的子公司,负责为网站和应用开发付款解决方案。他们对内部构建使用 Bazel,而 Paul Aggregate 甚至在文章中提出了关于改用 Bazel 的优点

Canva

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

CarGurus

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

罗盘

Compass 是一家技术驱动的房地产平台。我们拥有一支由房地产、技术和商务专业人士组成的精英团队,力求成为那些寻求优质房源并且最值得信赖的房源。

Databricks

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

Databricks 代码库是一个 Monorepo,其中包含支持大多数服务的 Scala 代码、用于前端界面的 JavaScript、用于脚本的 Python、用于配置基础架构的 Jsonnet,以及更多 [...] 进一步虽然我们的 MonoRepo 包含一百万行 Scala,但使用其中的代码快速而快捷。 (在 Databricks 中使用 Bazel 快速构建 Scala)

Dataform

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

迁移到 Bazel 后,他们报告了许多优势,包括:

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

深银色 FISHLABS

Deep 银色 FISHLABS 是一家高端 3D 游戏的开发者。他们将 Bazel 与 C++/Python/Go/C 搭配使用,作为其内部构建工具的基础,尤其是进行烘 and 和部署所有 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 二进制文件。(来源

仅限

这只是一家企业金融技术公司,总部位于挪威,致力于开发软件解决方案,改变全球企业财政部人员管理风险和流动性的方式。他们的整个应用栈都是使用 Bazel 构建的。

Kitty Hawk Corporation

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

直线

Line 提供即时通信应用,这是日本最受欢迎的即时通讯应用。 他们在代码库上使用 Bazel,其中包含 60% 左右的 Swift 和 40% C/C++/Objective-C/Objective-C++(源代码)。

改用 Bazel 后,我们能够在构建方面实现大幅改进。这大大提高了质量检查期间的周转时间。将新构建版本分发给我们的测试人员无需再等待一个小时来构建和测试。(使用 Bazel 提高 iOS 版 LINE 的构建性能

LingoChamp

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

领英

Microsoft 的子公司 LinkedIn 是世界上最大的专业社交网络。LinkedIn 使用 Bazel 构建了其 iOS 应用。

Lyft

Lyft 对其 iOS 应用使用的是 Bazel(来源)。

马卡尼

Makani 现在是一家 Google 子公司,他们开发风 ,并使用 Bazel 构建其软件(包括嵌入式 C++ 软件)。

聚会

Meetup 是一个在线社交网络门户,可帮助进行离线群组会议。 Meetup 工程团队为 rules_scala 做出贡献,他是 rules_avrorules_pano 的维护者。

Nvidia

Nvidia 一直在为 Python 使用 dazel(docker Bazel) 来解决 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 版本

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 即时通讯应用 Snap 已于 2020 年从 Buck 迁移到 Bazel(来源)。如需详细了解此过程,请参阅他们的工程博客

条纹

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

Tink

Tink 是欧洲的金融技术,构建了连接欧洲各银行的最佳方式。

他们使用 Bazel 从 Polyglot 单一代码库构建后端服务。Tink 的工程师们正在组织 Bazel build //stockholm/... 聚会组。

Tokopedia

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

他们撰写了 Tokopedia 如何将 iOS 构建速度提升 1000% 一文,并在其中阐述了 Bazel 如何加快构建速度。使用 Bazel 将构建时长从 55 分钟缩短到 10 分钟,使用远程缓存时,构建时长从 5 分钟缩短到 5 分钟。

Twitter

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

Two Sigma

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

Uber

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

Uber Advanced Technologies Group

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

Vistar 媒体

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

VMware

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

Wix

Wix 是基于云端的网络开发平台。其后端使用 Java 和 Scala 代码。它们通过 Google Cloud Build 使用远程执行。

使用 Bazel 远程执行功能,我们已经看到简洁的构建速度加快了 5 倍左右。该作业在将工作器构建/测试操作分派到工作器农场时利用了强大的构建/测试并行功能。由于使用了 Bazel 的激进缓存机制,平均构建时间加快了 10 倍以上。(要从 Maven 或 Gradle 迁移到 Bazel 吗?您应思考的 5 个关键问题)

Zenly

Zenly 是亲朋好友的实时地图。这是见面的最有趣方式,或者直接看看发生了什么事!— 即使你们分开,也能感受到共同的心情。


使用 Bazel 的开源项目

Abseil

Abseil 是 C++ 代码的开源集合(符合 C++11),旨在扩充 C++ 标准库。

Angular

Angular 是一种流行的 Web 框架。Angular 是使用 Bazel 构建的。

阿波罗

Apollo 是一种高性能、灵活的架构,可以加速自动驾驶汽车的开发、测试和部署。

brpc

百度使用的工业级远程过程调用(RPC) 框架,包含 100 多万个实例(不包括客户端)和数千种服务,称为百度中的“百度-rpc”。

cert-manager

cert-manager 是一个 Kubernetes 插件,用于自动管理和颁发各种颁发来源的 TLS 证书。它将确保证书有效且定期更新,并尝试在到期前适时续订证书。

CallBuilder

一个 Java 代码生成器,让您可以通过编写一个函数来创建构建器。

CPPItertools

C++ 库,提供基于范围的 for 循环插件,受 Python 内置函数和 itertools 库启发。与 itertools 和 Python3 内置一样,此库会尽可能使用延迟评估。

副本

Copybar 是一款用于在代码库之间转换和移动代码的工具。

Dagger

Dagger 是一个完全静态的编译时依赖项注入框架,适用于 Java 和 Android。

DAML

DAML 是一种智能的合同语言,用于在安全的隐私运行时中运行面向未来的分布式应用。

Deepmin 实验室

基于代理的 AI 研究的可定制 3D 平台。

Drake

Drake 是 MIT 创立的 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 的项目。

Giiles

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

Grakn

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

GRPC

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

gVisor

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

古兹语

Guetzli 是一个 JPEG 编码器,旨在以高画质实现出色的压缩密度。

古拉瓦语

一个 Java 代码生成器,让您可以编写 Prolog 风格的谓词,并与常规 Java 代码无缝搭配使用。

主打图片

Heron 是来自 Twitter 的实时分布式容错型流处理引擎。

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 Ehereum 2.0 实现

Prysm 是 Ehereum 2.0 的分片客户端。基于块链的分布式计算平台。

Ray(雷亚语)

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

Resty

Resty 是 Go 版的简单 HTTP 和 REST 客户端库(受 Rubyrest-client 启发)。

结束时间

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

S

Selenium 是用于测试 Web 应用的便携式框架。

语义

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

投放百分比

Served 是一个 C++ 库,用于构建高性能 RESTful 网络服务器。

Sonnet

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

冰糕

Sorbet 是一款快速且强大的类型检查工具,适用于 Ruby 的一部分。它能够扩展到包含数百万行代码的代码库,并且可以逐步采用。

Tink

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

TensorFlow

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

Turbo Santa

独立于平台的 GameBoy 模拟器。

Wycheproof

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

XIOSim

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

ZhihuDailyPurify

ZhihuDailyPurify 是中文版问答网页 Zhihu Daily 的轻量级版本。