[Rust] Rust 用在生产环境的 42 家公司
💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。
Summary: Rust 已经被广泛用于生产环境,从个人、小团队,到世界上最大和最具影响力的公司,都已经将 Rust 用于生产环境。每天服务数十亿笔交易,无论是可靠性、生产率、性能优势,或是安全性,Rust 都是当今的首选语言。
本文摘选自 Sylvain Kerkour(Bloom.sh 站点的创建者和《黑帽 Rust(Black Hat Rust)》一书作者)的文章 42 Companies using Rust in production。
很多人都想学习 Rust 语言,但担忧 Rust 语言或其生态系统还没有做好在生产环境使用的准备,或者他们可能找不到 Rust 开发相关的工作。
实际上,大可不必。Rust 已经被广泛用于生产环境,从个人、小团队,到世界上最大和最具影响力的公司,都已经将 Rust 用于生产环境。每天服务数十亿笔交易,无论是可靠性、生产率、性能优势,或是安全性,Rust 都是当今的首选语言。
下面的列表并不详尽,我从我所关注的公司中,挑选了 42 个家简要介绍,以及它们在生产环境中使用 Rust 的信息。
1Password:“我们在 1Password 的生产环境中,使用 Rust 已有几年了。我们的 Windows 团队是这项工作的领跑者,Windows 中所用的 1Password 7,大约 70% 都是用 Rust 开发的。在 2019 年底,我们还将 1Password Brain(驱动浏览器填充逻辑的引擎)从 Go 移植到了 Rust。这样,我们就可以在浏览器扩展中,发挥将 Rust 程序部署到 WebAssembly 应用的性能优势。”
Android:“在过去的 18 个月里,我们一直在为 Android 开源项目添加对 Rust 的支持。我们有几个早期采用 Rust 开发的项目,我们将在未来几个月内分享。将 Rust 扩展到更多操作系统,是我们的一个多年项目。”
Astropad:“有了 Rust,我们将拥有一个高性能、可移植的平台,可以轻松地在 Mac、iOS、Linux、Android,以及 Windows 上运行。这不仅极大地扩大了我们潜在的市场规模,而且还看到了我们的 LIQUID
技术的许多有趣的新用途。我们有信心用以强大的代码、更好的产品和对 Astropad 未来的乐观展望,以完成我们的 Rust 之旅。”
AWS:“在 AWS,我们喜欢 Rust,因为它帮助 AWS 编写高性能、安全的基础设施级网络和其他系统软件。我们使用 Rust 提供的服务产品有很多,比如 Amazon 简单存储服务(Amazon S3)、Amazon 弹性计算云(Amazon EC2)、Amazon CloudFront、Amazon Route 53 等等。最近我们推出了 Bottlerocket,这是一个基于 Linux 的容器操作系统,也是用 Rust 开发的。”
Bloom(译注:本文作者自己创建的):“作为一个独立和繁荣的企业,我需要 Bloom 尽可能可靠,这样我就可以享受我的夜晚和假期。Rust 是一个完美的选择,因为它出色的编译器,在编译时捕获了大多数 bug。”
Cloudflare:“随着我们 Rust 开发经验的增长,Rust 语言在另外两个方面显示出了优势:作为一种具有强大内存安全性语言,它是边缘计算的一个绝好选择;作为一种具有极大热情的语言,它成为一种流行于组件重新开发(de novo)的语言。”
Coursera:“我们在增强的 Docker 容器中,高效、可靠、安全地为提交的作业评分。虽然我们将集群调度到 Amazon EC2 容器服务(ECS)上,但许多程序之间协同工作,是用 Rust 开发的。”
Cultivate:“Rust 语言,使经验丰富的开发者灵活、高效,且错误较少。并且,允许那些探索系统发展的开发者,第一次脱离 C/C++ 的‘陷阱(gotchas)’,以自信心、好奇心和受保护的方式前进。”
Crisp:“Vigil 是开源的、自托管的状态页面,也是监控和警报系统。它使用 Rust 开发,这使得它可靠、轻量、无崩溃(crash-free),至少在理论上是这样。”
Discor:“当开始一个新的项目或组件时,我们首先考虑使用 Rust。当然,我们只在适合的地方使用。除了性能之外,Rust 对工程团队也有很多优势。例如,它的类型安全性和借用/引用检查器,使重构代码变得非常容易。此外,Rust 的生态系统和工具都非常出色,背后有着巨大的动力。”
Ditto:“当我们开始构建 Ditto 作为跨平台 SDK 时,Rust 为我们带来了许多功能,例如易于阅读、性能优良,包括一个现代化的构建系统和包管理器。”
Dropbox:“我们用 Rust 开发了 Nucleus
!Rust 帮助我们团队力量倍增,选择 Rust 是我们做出的最好决定之一。Rust 的人机工程学和正确原则,不仅有助于我们驯服 sync
的复杂性。而且,我们可以在类型系统中,对系统进行复杂的不变量编码,并让编译器为我们检查它们。”
Everlane:“Rust 给予我们锻造性。这项服务已经在生产环境运行 4 个月了,它平均每秒处理 40 个请求,响应时间为 10ms。它的内存使用量很少超过 100MB。”
Facebook:“Facebook 正在雇佣一个团队,计划开发 Rust 编译器和库。”
Faraday(译注:不是法拉第未来哦)
Figma:“虽然我们有一些挫折,但我想强调的是,我们在 Rust 方面的经验,总体上是非常积极的。这是一个非常有前途的项目,我们拥有坚实的核心和健康的社区。”
Fly.io:“我们基础设施中的每台服务器,都在运行一个名为 fly-proxy
的基于信任的代理。此代理负责接受客户端连接、将其与客户应用程序匹配、应用处理程序(例如:TLS终止)以及服务器之间的回程处理。”
fullstory:“经过仔细考虑,Rust 出现在我们选择标准的最前面。虽然我们承认,我们中的一些人希望这将是最终的结果,但这不是一个定局!我们有相当多的工程师对 Go 和 TypeScript 有很深的了解,我们利用他们的经验确保这些语言不会受到冷遇。但最终,大家一致认为,Rust 实际上是最正确的选择。”
IBM:“IBM 的一个团队使用 WebAssembly 和 Rust,实现了难以置信的性能改进。”
华为:“可信编程的愿景之旅,才刚刚开始。我们希望与 Rust 社区,以及即将成立的 Rust 基金会合作,为电信软件行业带来一场平稳的革命。”
Linkerd:“使用 Rust 的决定,可归结为三个因素。首先,mesh
服务代理有一些非常严格的要求:因为它是基于 per-pod
基础部署的,所以它必须具有尽可能小的内存和 CPU 占用。其次,因为应用程序的大部分或所有网络流量都通过代理,所以它需要最小的延迟开销,尤其是最坏情况下的尾部延迟。最后,也许是最重要的:因为代理处理的应用程序数据,可能包括极其敏感的数据,如金融交易或个人健康,所以它必须是安全的。”
Mozilla:“firefox v48,是 Mozilla 发布的第一个使用 Rust 开发的产品。当然,还有更多的使用 Rust 开发的产品要发布!”
npm:“npm 的第一个 Rust 程序,在一年半的生产环境中,没有发生任何警报。‘我对 Rust 最大的赞美,是它很无聊’,Dickinson说,‘这是一个令人惊奇的赞美’。部署新的 Rust 服务的过程是直接的,很快,他们就能够忘记这项 Rust 服务,因为它只引起很少的操作问题。”
OneSignal:“就在这个月,我们突破了每天发送 70亿 条通知的门槛,并创下了每秒 175 万条的记录。”
Qovery:“随着公司意识到云计算的好处,Rust 的势头就越来越强劲。Dropbox 使用 Rust 重写了它的一些核心系统,而 Mozilla 使用 Rust 构建了 Firefox 浏览器引擎,展示了 Rust 强大的优势。在 Qovery,我们相信 Rust 能够云构建的未来。”
Rapid7:“我们在 Rust 部署中,看到的主要加速点是,不同平台上的部署工具,能够很容易地适应该语言。代理开发人员,能够很快地学习该语言,并开发与托管运行时的集成。”
三星:“我们想向 Rust 语言的 5 个核心团队、Mozilla,以及 Rust 语言生态系统中众多软件包的贡献者们公开道谢:我们正在利用 Rust 开发新的更新客户端和服务器,以及其他一些软件的主干,并希望随着时间的推移,继续扩大我们对该语言的使用。”
Sentry:“这个项目非常成功。它花了我们很少的时间来实现,它降低了用户的处理时间,而且它还将帮助我们横向扩展。Rust 一直是这个工作的完美工具,因为它允许我们把昂贵的操作转移到本地库中,而不必使用 C 或 C++,这将不太适合这种复杂的任务。”
System76:“像我们今天的所有项目一样,它是用 Rust 编写的,并且遵循当前的最佳实践。该项目被配置为一个工作区,核心 crate 提供了一个通用库,用于从多个固件服务中发现和管理固件。支持 fwupd
和 system76-firmware
。”
Tonari:“到目前为止,没有出现与软件相关的停机,这既是一个惊喜,也是 Rust 保证所提供服务的安全性的证明。Rust 还使得编写高性能代码,和高效的资源利用变得很容易——我们的 CPU 和内存使用都是可预测的和一致的。没有垃圾回收器,我们可以保证一致的延迟和帧速率。”
VS Code:有没有注意到 VS Code 的搜索速度有多快?原因是 VS Code 正在使用 ripgrep
来增强它的搜索能力。
Clever Cloud:“对我们来说,这些好处有力地证明了 Rust 是生产平台的可靠构建块。这是一段我们不必担心的代码,它将使其它服务能够安全地运行。”
还有很多公司,如 Scaleway、Oxide、Fuchsia、MeiliSearch、Vector、embark、Chef、BBC、……
Rust 官方网站上,你也可以找到一个专有的介绍页面。
谢谢您的阅读!