NiQin (blog: 泥芹) shared the aphorism --
失败只有一个原因,把做产品看作实现自己梦想的方式。但产品本质是帮他人解决问题,别人需要什么你就要做什么,而不是我只做我喜欢的。你的产品做到了你心中的最好,被你视若珍宝,但对别人没有任何特殊之处。 -- 佚名

[Rust] Rust 用在生产环境的 42 家公司

💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。

Summary: Rust 已经被广泛用于生产环境,从个人、小团队,到世界上最大和最具影响力的公司,都已经将 Rust 用于生产环境。每天服务数十亿笔交易,无论是可靠性、生产率、性能优势,或是安全性,Rust 都是当今的首选语言。

Topics: 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 基金会合作,为电信软件行业带来一场平稳的革命。”

KISIO Digital

Komodo Platform

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++,这将不太适合这种复杂的任务。”

Signal

Snips

System76“像我们今天的所有项目一样,它是用 Rust 编写的,并且遵循当前的最佳实践。该项目被配置为一个工作区,核心 crate 提供了一个通用库,用于从多个固件服务中发现和管理固件。支持 fwupdsystem76-firmware。”

Threema

Tonari“到目前为止,没有出现与软件相关的停机,这既是一个惊喜,也是 Rust 保证所提供服务的安全性的证明。Rust 还使得编写高性能代码,和高效的资源利用变得很容易——我们的 CPU 和内存使用都是可预测的和一致的。没有垃圾回收器,我们可以保证一致的延迟和帧速率。”

Veloren

VS Code:有没有注意到 VS Code 的搜索速度有多快?原因是 VS Code 正在使用 ripgrep增强它的搜索能力

Wire

Zenly

yeslogic

Clever Cloud“对我们来说,这些好处有力地证明了 Rust 是生产平台的可靠构建块。这是一段我们不必担心的代码,它将使其它服务能够安全地运行。”

还有很多公司,如 ScalewayOxideFuchsiaMeiliSearchVectorembarkChefBBC、……

Rust 官方网站上,你也可以找到一个专有的介绍页面

谢谢您的阅读!


Related Articles

  1. [Rust] RustHub.org:基于 Rust-Web 技术栈,及 image-rs、fluent-rs、rhai-script ……
  2. [WebAssembly] yew SSR 服务器端渲染
  3. [Rust] async-std 创建者对于最近“项目是否已死?”,移除对其支持等的答复
  4. [Rust] Rust 1.56.0 版本和 Rust 2021 版次发布,新特性一览,及项目的迁移、升级
  5. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 博客应用的体验报告
  6. [Rust] Rust 官方周报 399 期(2021-07-14)
  7. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 web 前端(5)- 构建 HTTP 请求、与外部服务器通信的两种方法
  8. [Rust] Rust 官方周报 398 期(2021-07-07)
  9. [Rust] Rust 官方周报 397 期(2021-06-30)
  10. [Rust] Rust 官方周报 396 期(2021-06-23)
  11. [Rust] Rust 官方周报 395 期(2021-06-16)
  12. [Rust] Rust 1.53.0 明日发布,关键新特性一瞥
  13. [Rust] 使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(3)- rhai 脚本、静态/资源文件、环境变量等
  14. [Rust] 使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(2)- 获取并解析 GraphQL 数据
  15. [Rust] 使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(1)- crate 选择及环境搭建
  16. [Rust] Rust 官方周报 394 期(2021-06-09)
  17. [Rust] Rust web 前端库/框架评测,以及和 js 前端库/框架的比较
  18. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 web 前端(4)- 获取 GraphQL 数据并解析
  19. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 web 前端(3)- 资源文件及小重构
  20. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端(2)- 组件和路由
  21. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端(1)- 起步及 crate 选择
  22. [Rust] Rust 官方周报 393 期(2021-06-02)
  23. [Rust] Rust 官方周报 392 期(2021-05-26)
  24. [Rust] Rust 中,对网址进行异步快照,并添加水印效果的实践
  25. [Rust] Rust 官方周报 391 期(2021-05-19)
  26. [Rust] Rust,风雨六载,砥砺奋进
  27. [Rust] 为什么我们应当将 Rust 用于嵌入式开发?
  28. [Rust] Rust 官方周报 390 期(2021-05-12)
  29. [Rust] Rust + Android 的集成开发设计
  30. [Rust] Rust 1.52.1 已正式发布,及其新特性详述
  31. [Rust] 让我们用 Rust 重写那些伟大的软件吧
  32. [Rust] Rust 1.52.0 已正式发布,及其新特性详述
  33. [Rust] Rust 官方周报 389 期(2021-05-05)
  34. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(4) - 变更服务,以及小重构
  35. [Rust] Rust 1.52.0 稳定版预发布测试中,关键新特性一瞥
  36. [Rust] Rust 生态中,最不知名的贡献者和轶事
  37. [Rust] Rust 基金会迎来新的白金会员:Facebook
  38. [Rust] Rustup 1.24.1 已官宣发布,及其新特性详述
  39. [Rust] Rust 官方周报 388 期(2021-04-28)
  40. [Rust] Rust 官方周报 387 期(2021-04-21)
  41. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(4)- 变更服务,以及第二次重构
  42. [Rust] Rustup 1.24.0 已官宣发布,及其新特性详述
  43. [Rust] basedrop:Rust 生态中,适用于实时音频的垃圾收集器
  44. [Rust] Rust 编译器团队对成员 Aaron Hill 的祝贺
  45. [Rust] Jacob Hoffman-Andrews 加入 Rustdoc 团队
  46. [机器人] 为什么应将 Rust 引入机器人平台?以及机器人平台的 Rust 资源推荐
  47. [Rust] rust-lang.org、crates.io,以及 docs.rs 的管理,已由 Mozilla 转移到 Rust 基金会
  48. [Rust] Rust 官方周报 386 期(2021-04-14)
  49. [Rust] Rust 编译器(Compiler)团队 4 月份计划 - Rust Compiler April Steering Cycle
  50. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(3) - 重构
  51. [Rust] 头脑风暴进行中:Async Rust 的未来熠熠生辉
  52. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(2) - 查询服务
  53. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务 - 起步及 crate 选择
  54. [Rust] Rust 2021 版本特性预览,以及工作计划
  55. [Rust] Rust 用在生产环境的 42 家公司
  56. [Rust] 构建最精简的 Rust Docker 镜像
  57. [Rust] Rust 官方周报 385 期(2021-04-07)
  58. [Rust] 使用 Rust 做异步数据采集的实践
  59. [Rust] Android 支持 Rust 编程语言,以避免内存缺陷
  60. [Rust] Android 平台基础支持转向 Rust
  61. [Rust] Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身
  62. [Rust] RustyHermit——基于 Rust 实现的下一代容器 Unikernel
  63. [Rust] Rustic:完善的纯粹 Rust 技术栈实现的国际象棋引擎,多平台支持(甚至包括嵌入式设备树莓派 Raspberry Pi、Buster)
  64. [Rust] Rust 迭代器(Iterator trait )的要诀和技巧
  65. [Rust] 使用 Rust 极致提升 Python 性能:图表和绘图提升 24 倍,数据计算提升 10 倍
  66. [Rust] 【2021-04-03】Rust 核心团队人员变动
  67. [Rust] Rust web 框架现状【2021 年 1 季度】
  68. [Rust] Rust 官方周报 384 期(2021-03-31)
  69. [Rust] Rust 中的解析器组合因子(parser combinators)
  70. [生活] 毕马威(KPMG)调查报告:人工智能的实际采用,在新冠疫情(COVID-19)期间大幅提升
  71. [Python] HPy - 为 Python 扩展提供更优秀的 C API
  72. [Rust] 2021 年,学习 Rust 的网络资源推荐(2)
  73. [Rust] 2021 年,学习 Rust 的网络资源推荐
  74. [生活] 况属高风晚,山山黄叶飞——彭州葛仙山露营随笔
  75. [Rust] Rust 1.51.0 已正式发布,及其新特性详述
  76. [Rust] 为 Async Rust 构建共享的愿景文档—— Rust 社区的讲“故事”,可获奖
  77. [Rust] Rust 纪元第 382 周最佳 crate:ibig 的实践,以及和 num crate 的比较
  78. [Rust] Rust 1.51.0 稳定版本改进介绍
  79. [Rust] Rust 中将 markdown 渲染为 html
  80. [生活] 国民应用 App 的用户隐私数据窥探
  81. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(3)- 重构
  82. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(2)- 查询服务
  83. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(1)- 起步及 crate 选择
  84. [Rust] Rust 操控大疆可编程 tello 无人机

Topics

rust(84)

graphql(17)

rust-官方周报(17)

webassembly(16)

wasm(10)

tide(9)

async-graphql(9)

yew(9)

rust-web(8)

rust-官方博客(8)

this-week-in-rust(6)

mysql(5)

actix-web(5)

rbatis(5)

android(4)

mongodb(3)

json-web-token(3)

jwt(3)

cargo(3)

技术延伸(3)

rust-wasm(3)

trunk(3)

handlebars(3)

rhai(3)

async-std(3)

用户隐私(2)

学习资料(2)

python(2)

ai(2)

人工智能(2)

postgresql(2)

rust-compiler(2)

rust-基金会(2)

rust-foundation(2)

rustup(2)

rust-toolchain(2)

rust-工具链(2)

rust-游戏开发(2)

rust-区块链(2)

rust-2021(2)

graphql-client(2)

surf(2)

rust-game(2)

rusthub(2)

tello(1)

drone(1)

无人机(1)

隐私数据(1)

markdown(1)

html(1)

crate(1)

async(1)

异步(1)

旅游(1)

不忘生活(1)

葛仙山(1)

hpy(1)

python-扩展(1)

正则表达式(1)

解析器组合因子(1)

组合器(1)

regular-expression(1)

parser-combinator(1)

regex(1)

官方更新(1)

rust-工作招聘(1)

rust-技术资料(1)

rust-周最佳-crate(1)

rust-web-框架(1)

rust-web-framework(1)

rust-核心团队(1)

rust-core-team(1)

rust-language-team(1)

pyo3(1)

rust-python-集成(1)

python-性能改进(1)

迭代器(1)

iterator-trait(1)

国际象棋(1)

chess(1)

游戏引擎(1)

game-engine(1)

虚拟化(1)

unikernel(1)

rustyhermit(1)

linux(1)

virtualization(1)

sandboxing(1)

沙箱技术(1)

数据采集(1)

异步数据采集(1)

docker(1)

镜像(1)

生产环境(1)

rust-评价(1)

rust-2021-edition(1)

rust-2021-版本(1)

graphql-查询(1)

vision-doc(1)

愿景文档(1)

代码重构(1)

steering-cycle(1)

方向周期(1)

隐私声明(1)

机器人(1)

robotics(1)

rustdoc(1)

rust-编译器(1)

实时音频(1)

real-time-audio(1)

变更服务(1)

mutation(1)

查询服务(1)

query(1)

rust-贡献者(1)

rust-轶事(1)

rust-稳定版(1)

rust-预发布(1)

rust-测试(1)

安全编程(1)

可信计算(1)

安全代码(1)

secure-code(1)

rust-android-integrate(1)

rust-embedded(1)

rust-嵌入式(1)

rust-生产环境(1)

rust-production(1)

网页快照(1)

网页截图(1)

水印效果(1)

图片水印(1)

yew-router(1)

css(1)

web-前端(1)

wasm-bindgen(1)

区块链(1)

blockchain(1)

dotenv(1)

标识符(1)

rust-1.53.0(1)

rust-1.56.0(1)

rust-项目升级(1)

异步运行时(1)

ssr(1)

tokio(1)

warp(1)

reqwest(1)

graphql-rust(1)


Elsewhere

- Open Source
  1. github/zzy
  2. github/sansx
- Learning & Studying
  1. Rust 学习资料 - 泥芹