乐趣区

关于rust:2021-年-Rust-生态版图调研报告-星辰大海下篇

文前

半年前,我写了一篇《三万言| 2021 年 Rust 行业调研报告》[1],内容次要围绕 Rust 语言介绍和行业畛域开源利用盘点 两大部分内容。时隔半年,我感觉有必要再写一篇年初的 Rust 生态调研报告。因为我想给大家提供一个比拟全面的视角,通过开掘互联网上的各种散落且暗藏的信息,最终绘制出一张 Rust 的“生态地图”,让大家尽量主观公正地去意识 Rust 语言。

在实现本篇报告之后,我得出一个观点:Rust 的呈现并不是要你去用它重写所有,而是心愿你能够用它发明新的将来。当然这只是我个人观点,不代表任何人任何机构和公司。如果您有不同观点,欢送探讨。

本次报告的所有内容都来自于互联网公开信息,如有谬误或不宜在本报告中提及的内容,请及时告知。

纲要

本次报告蕴含以下内容:

  • Rust Project 本身状态
  • Rust 在各个领域中的利用状态和趋势
  • Rust 职业岗位散布
  • Rust 语言在教育的遍及状态

上篇回顾

在《【上篇】2021 年 Rust 生态调研报告 | 星辰大海》中,咱们盘点了 Rust Project 本身的状态 以及 Rust 在操作系统、云原生、物联网、游戏和数据处理畛域中 2021 年值得关注的我的项目动静。

这篇内容会紧接上篇内容,持续探讨 Rust 在其余畛域中的利用状态、Rust 职业岗位散布 和 Rust 语言在教育方面的遍及状态。

Rust 在各个领域中的利用状态和趋势【续】

机器学习与科学计算

2021 年 NLP 畛域明星我的项目 Transformers

Hugging Face 是一家总部位于美国纽约的聊天机器人初创服务商。该公司在 NLP 界鼎鼎大名,2021 年 3 月份刚刚实现 4000 万美元 B 轮融资。在 GitHub 上公布了开源 NLP 库 Transformers[2],而 Transformers 库集成了 tokenizers。

tokenizers[3] 是 Hugging Face 公司开源的一款 Rust 实现的分词库,只需不到 20 秒即可用服务器 CPU 进行 1GB 文本处理。基于深度学习的古代 NLP 管道中的瓶颈之一就是 tokenization,尤其是通用性强且独立于框架的实现。所以,该分词器的外围是用 Rust 编写的,并且存在 Node 和 Python 的绑定。提供当今最罕用的分词器的实现,重点是性能和通用性。

目前 Transformer 模型预测曾经遍布特斯拉、谷歌、微软、Facebook 等科技巨头。Transformer 在特斯拉 AutoPilot 主动驾驶零碎中驱动汽车、在 Gmail 中补全句子、在 Facebook 上及时翻译用户的帖子以及在 Bing 中答复用户的自然语言查问等。

能够说,Hugging Face 这家守业公司 应用 Rust 来构建分词器,对于机器学习模型的准确率和性能方面的微小晋升应该是有踊跃作用等。

linfa

Linfa[4] 是一个 Rust 实现的 相似于 python scikit-learn 的库,旨在提供一个全面的工具包,能够应用 Rust 构建机器学习应用程序。该团队还创立了 Rust-ML 组织。

scikit-learn,又写作 sklearn,是一个开源的基于 python 语言的机器学习工具包。它通过 NumPy, SciPy 和 Matplotlib 等 python 数值计算的库实现高效的算法利用,并且涵盖了简直所有支流机器学习算法。

更多材料:Rust 机器学习之书[5]

2021 年该库曾经公布了 0.5 版本,其 Roadmap[6] 中 24 个工作,截止目前曾经实现了 20 个。该 Roadmap 的指标就是在性能方面要和 Python 的scikit-learn[7](基于 SciPy 针对机器学习畛域倒退出的一个分支版本)提供的算法完全一致。目前仅剩下 高斯过程、随机森林、集成学习和 最小角度回归没有实现。这个 Roadmap 进行了大略两年开发,预计 2022 年应该会实现。

也就是说,在 2022 年,Rust 生态中会呈现一个性能和 python sklearn 完全一致,但性能比 sklearn 更好的库。

Polars

在数据操作层面,每个人都喜爱 Pandas 的 API。它疾速、简略且有据可查。但在生产方面,Pandas 有点辣手。Pandas 不能很好地扩大……没有多线程……它不是线程平安的……它不是内存效率。这一切都是 Rust 存在的理由。

Polars[8] 用 Rust 实现的新 Dataframe 库,具备不便的 Python 绑定。它试图做到以线程平安的形式进行读取、写入、过滤、利用函数、分组和合并。它应用Apache Arrow[9],这是一个专门为跨语言进行高效数据处理和数据共享而构建的数据框架。

Polars 有两个劣势:

  • 它是性能杀手,参考 db-benchmark[10]。
  • 它的 API 非常简单。哪怕不懂 Rust 语法也能看懂该接口要做什么。

也有三个毛病:

  • 构建 Dataframe API 很艰难,Pandas 花了 12 年才达到 1.0.0,而 Polars 很年老,所以目前还不够成熟。
  • 应用它的时候,不仅仅要相熟 Polars API,还须要相熟 Arrow API,因为很多沉重工作是 arrow 来实现的。
  • 编译工夫太慢,可能须要 6 分钟左右。

Polars 当初由 Xomnia[11] 公司资助。Xomnia 是荷兰一家人工智能公司,在钻研主动驾驶船只,被人称为水上特斯拉。

oxide-enzyme

oxide-enzyme [12] 也是 linfa 团队在 2021 年底新创建的另一个我的项目。oxide-enzyme 是 Enzyme 的 Rust 前端库,该库目前是实验性的,但在踊跃开发中。

Enzyme[13] 是 MIT 提出的主动微分框架,它可能合成以 LLVM 两头示意(IR)示意的动态可分析程序的梯度。Enzyme 可能合成任何以面向 LLVM IR 编译器为语言编写的程序的梯度,包含 C、C ++、Fortran、Julia、Rust、Swift、MLIR 等,从而提供这些语言的本机 AD 性能。

Enzyme 呈现的背景

以后,PyTorch、TensorFlow 等机器学习框架曾经成为了人们开发的重要工具。计算反向流传、贝叶斯推理、不确定性量化和概率编程等算法的梯度时,咱们须要把所有的代码以微分型写入框架内。这对于将机器学习引入新畛域带来了问题:在物理模仿、游戏引擎、气象模型中,原畛域组件不是由机器学习框架的特定畛域语言(DSL)编写的。因而在将机器学习引入科学计算时,重写需要成为了一个挑战。

为了解决这一问题,当初的发展趋势蕴含构建新的 DSL,让重写过程变得简略,或者在编程时间接进行构建。这些办法能够让咱们取得无效的梯度,然而依然须要应用 DSL 或可微分的编程语言进行重写。为了不便开发者,来自 MIT 的研究者开源了 Enzyme。

MegFlow

MegFlow[14] 是旷视天元在 2021 年 9 月份开源的面向计算机视觉利用的流式计算框架,提供了一套可疾速实现 AI 利用部署的视觉解析服务计划。AI 利用开发者能够基于 MegFlow 提供的图像和视频解析服务,最快 15 分钟即可实现客制化所需性能,例如发票扫描、明火检测等。

惯例的 AI 算法交付流程个别分为模型训练、SDK 封装、业务集成和交付验收四个步骤,简短繁冗。MegFlow 总结了旷视外部多年的 AI 利用工程落地教训,将资源、音讯、工作等概念进行了清晰统一的抽象化,将简短的算法交付流程简化为模型训练、业务集成及交付验收三步。通过 MegFlow,AI 算法钻研人员能够疾速将训练好的模型集成部署成简略易用的 AI 服务并实现交付。

MegFlow 的研发团队调研了多种技术计划,最终抉择了平安且零额定开销的 Rust 异步生态,从根底上保障了 MegFlow 的安全性与性能。

MegFlow 开源的这四个月里,减少了一些个性,并且还减少了一个应用案例:猫猫围栏[15],相干视频:懒出新境界!程序员居然造出一台人工智能猫粮机![16],试验成果还不错。并且开发者还能够从旷视天元申请收费的算力。

qdrant:神经网络搜索引擎

qdrant[17] 是一个向量相似性搜索引擎。它提供了一个生产就绪的服务,有一个不便的 API 来存储、搜寻和治理点(带有额定无效 payload 的向量)。Qdrant 是为扩大过滤反对而定制的。这使得它对各种神经网络或基于语义的匹配、分面搜寻和其余利用都很有用。基于 Rust 实现,性能也有保障。嵌入神经网络编码器能够变成成熟的应用程序,用于匹配、搜寻、举荐等。

其余

目前还有一些在 2021 年 6 月份统计过的仍然沉闷保护状态的机器学习框架:

  • tch-rs[18] 是 Pytorch 的 Cpp API 的 Rust 绑定,目前正在沉闷保护中。
  • ndarray[19] 是一个由 Rust 官网团队中资深科学计算专家 bluss 开发的开源我的项目,实现了基于 rust 的矩阵和线性运算。指标是在 Rust 中建设相似于 numpy 和 openblas 的科学计算社区。它是机器视觉、数据挖掘、生物信息等多类科学计算库的根底,社区中的次要用户为一些相干技术的高校或者研究所。华为也在深度参加该库的开发。
  • nalgebra[20],是 Rust 的通用线性代数库,和 Rapier 一起都是,Dimforge 开源组织[21] 开发的。
  • tvm-rs[22] 是 TVM 的 Rust 绑定,TVM 是由华盛顿大学在读博士陈天奇等人提出的深度学习主动代码生成办法,去年 8 月机器之心曾对其进行过简要介绍。
  • Neuronika[23] 是一个用 Rust 编写的机器学习框架,与 PyTorch 相似,现已实现最常见的层组件(dense 层、dropout 层等),速度堪比 PyTorch。
  • Whatlang[24],基于 Rust 实现的 自然语言 辨认我的项目。

GUI

2021 值得关注的 GUI 我的项目:SixtyFPS

SixtyFPS 是一个工具包,能够无效地为任何显示器开发晦涩的图形用户界面:嵌入式设施、桌面应用程序、挪动端和 Web(目前可编译到 wasm,但仅作为演示,SixtyFPS 无心将 Web 作为次要竞争平台)。它反对多种编程语言,目前是 Rust、C++ 或 JavaScript。外围库是 Rust 实现,其余语言的反对通过 C-ABI 来实现。

从 2021 年开始,就看到一些基于 Rust 和开源来守业的公司缓缓减少,这个专一于 GUI 的 SixtyFPS 也是其中一个,这个开源 GUI 工具库面向全平台,指标之一是取代 Qt,换句话说,SixtyFPS 基本上是大多数 Qt 开发人员都在期待的下一代 QML。

SixtyFPS 两位创始人都对 Qt 开发有深刻的教训。其中一位是 已经在 Qt 公司负责 QtQml 引擎的次要开发人员和保护人员。

看他们的 2021 总结报告,发现他们在 2021 才注册了公司,和 tQCS 这样的征询公司建设了单干关系,找到了第一个客户,招募了新成员。(感觉国外技术流守业跟国内还是有点区别)。tQCS 提供世界 No.1 的 Qt 征询和 UI/UX 设计服务,抉择和 SixtyFPS 单干,这意味着什么呢?见仁见智吧。

2022 年他们可能要长足反对嵌入式,要有新品牌名字了。

Tauri

Tauri[25] 被看作是 Electron 的替代者,它们都是应用 Web 技术创立桌面应用程序以开发应用程序用户界面的框架。尽管外表看这两者如同都一样,但其实存在很大差异。

上面有一个比拟:

Bundle 大小:tauri 比 electron 小大概 19 倍。

内存耗费:electron 比 tauri 高 9 倍。

性能:tauri 更胜一筹

但应用 tauri 的要求更高,tauri API 远不如 Node.JS 残缺和空虚,所以你在应用 tauri 的时候,有些 API 可能须要本人应用 Rust 去实现它们。

下面的比拟来自于: https://githubhelp.com/Fournu…[26]。

另外,Tauri 在 2021 年还孵化出另外两个 crate:

  • wry[27],一个跨平台的 WebView 库。
  • tao[28],一个跨平台的 Window 库。

Tauri 目前公布了 1.0 beta 版,间隔正式稳定版曾经不远。Tauri 抉择 Rust 的起因就是为了平安和性能。Tauri 承诺不论你是在 App 中内置 localhost 服务器,还是做其余事件,Tauri 都会为你提供一个平安的底线。未来 Go、Nim、Python、Csharp 等其余后端语言也会被反对,这些都会通过以后这个 Rust 内核提供 C-API 来实现。

Egui

egui[29] 是一款纯 Rust 实现的应用立刻模式(immediate mode)的 GUI 框架(在屏幕上实时绘制须要的 ui)。在 egui 的 README[30] 中阐明了这种立刻模式的优缺点,如果你要做选型的话,应该去理解一下。简而言之,立刻模式是与保留模式做比照的。立刻模式次要长处是利用程序代码变得非常简单,毛病是让布局更加艰难,GUI 也不能太简单,否则会给 CPU 带来累赘。

Reddit 一位网友[31] 说他们正在应用 Bevy 和 Egui 来构建商业 CAD 软件。

截止目前,egui 公布了 0.16 版本。

其余

  • gtk4-rs[32],另一个比拟沉闷的 GUI 库是 GTK 的 Rust 绑定,2021 年公布了 GTK4 的 Rust 绑定 gtk4-rs[33] 0.3.1 版本,目前还在沉闷保护中。
  • iced[34],一个被 Elm 架构影响的 GUI 框架,它基于 wgpu。也是跨平台的,包含 Web UI。2021 年始终在沉闷开发中,然而间隔 2021 年 4 月份发版的这八个月工夫还没有收回新的版本。但它也是被人看好的一个框架。
  • druid[35],是一个实验性的 Rust 原生 UI 工具包,值得关注。Druid 目前的倒退很大水平上是由它在 Runebender[36] 中的应用而推动的,这是一种新的字体编辑器(处于很晚期的阶段)。
  • azul[37],是一款跨平台桌面 GUI 框架。它将函数式、反应式和面向数据的编程范式与实用于开发跨平台桌面应用程序的 API 混合在一起。Azul 的两个外围准则是不渲染不可见的对象,并应用 DOM 树的组合而不是继承。目前公布了 1.0-alpha 版本,间隔正式公布 1.0 也不远了。
  • lvgl-rs[38],是 LittlevGL 的 Rust 绑定。Littlevgl 是一种纯 C 语言编写的 GUI, 控件多且美,移植简略,只有对接一个显示接口,须要触摸的再加一个触摸管制接口。

网络与 Web 开发

网络服务

随着世界变得越来越严密,网络基础设施软件的规模和复杂性正在急剧减少。然而,对该软件的要求与以往一样严格:它不仅必须疾速,而且必须“平安”,即可能解决不受信赖的数据而不会解体或容易受到安全漏洞的攻打。传统上,这两个要求是不统一的:网络程序员必须抉择一种既能提供速度又能提供安全性的语言。所以,Rust 是下一代网络基础设施的必须语言。

Tokio

Tokio[39] 是以后 Rust 生态中构建网络服务的中流砥柱,它是一个 Rust 异步运行时和网络应用框架。尽管目前 Rust 生态中也有其余异步运行时,比方 async-std[40],但 tokio 无疑是生态最成熟的一个。

Tokio 在安全性、性能和异步任务调度方面都做了很多工作,反对 epoll 和 io_uring(tokio_uring[41] 刚公布 0.2 版本)。除此之外,还提供 tracing(链路追踪)[42]、console(异步调试,刚公布 0.1 版本)[43]和 loom(并发测试)[44] 工具。

尽管 Rust 异步个性还须要很大的改良,然而目前因为有 Tokio 的存在,齐全能够在生产环境中利用 Rust 异步。

Lunatic

lunatic[45],是受 Erlang 影响的一个 WebAssembly 运行时。你能够应用它疾速、强壮和可扩大的服务器端应用程序,然而你能够通过任意能够编译为 WebAssembly 的语言来应用它。

Lunatic 的并发是基于超轻量级过程,相似于绿色线程或 go-routines[46]。Lunatic 的过程创立速度快,内存占用小,调度开销低。它们专为大规模并发而设计。在个别的应用程序中同时运行数十万个这样的过程并不少见。Lunatic 过程彼此齐全隔离,它们有本人的栈、堆甚至零碎调用。如果一个过程失败,它不会影响零碎的其余部分。这容许开发者创立弱小且容错的形象。

在 Lunatic 上运行的所有过程都被抢占式异步执行(基于 smol 实现)[47]器调度和执行。这使开发者能够自在编写简略的阻塞代码,但运行时将确保它在期待 I/O 时实际上不会阻塞线程。

即便在代码中某处存在有限循环,调度也将始终是偏心的,不会永恒阻塞执行线程。最好的局部是开发者不须要做任何特地的事件来实现这一点,无论你应用哪种编程语言,运行时都会解决它。

这一切都是基于 Rust 和 WebAssembly (wasmtime 和 wasmtime-wasi) 来实现的,目前只公布了 0.7.0 版本,还在一直高速迭代。

embassy,嵌入式异步运行时

在嵌入式中,通常应用中断、DMA 并利用多核来解决并发事件而不阻塞主循环。这些传统上是通过无意的寄存器写入来解决的。例如,向外围设备发送命令以启动工作,持续运行程序,当工作实现时,会触发一个中断,并立刻运行解决实现的代码。Rust 中能够应用基于 Future 的 Async/Await 性能来形象这些过程。

embassy[48] 是一个旨在让 async/await 成为嵌入式开发的第一抉择的我的项目。异步能够产生更好的性能和更低的功耗,因为执行器不用猜想将来何时筹备好执行。然而,程序大小可能比其余代替计划大,这对于内存非常低的某些空间受限设施来说可能是个问题。在 Embassy 反对的设施上,例如 stm32 和 nrf,内存通常足够大,能够包容适度减少的程序大小。

Embassy 是一个执行器和一个硬件拜访层 (HAL)。executor 是一个调度程序,通常执行固定数量的工作,在启动时调配,但当前能够增加更多。HAL 是一种 API,可用于拜访外围设备,例如 USART、UART、I2C、SPI、CAN 和 USB。Embassy 在有意义的中央提供异步和阻塞 API 的实现。DMA(间接内存拜访)是一个非常适合异步的示例,而 GPIO 状态更适宜阻塞 API。

Embassy 还能够提供一个零碎计时器,能够将其用于异步和阻塞提早。在不到一微秒的工夫内,应该应用阻塞提早,因为上下文切换的老本太高,执行器将无奈提供精确的定时。

Embassy 目前为多个微控制器系列提供 HAL:

embassy-nrf 实用于 Nordic Semiconductor 的 nRF 微控制器
embassy-stm32 实用于 ST Microelectronics 的 STM32 微控制器
embassy-rp 实用于 Raspberry Pi RP2040 微控制器
Embassy 中的 异步 trait 反对,是将来官网要反对的 Rust async trait 的 MVP [49] 实现案例:

pub trait I2c<A: AddressMode = SevenBitAddress> {
    /// Error type
    type Error;
  // 基于 GAT(nightly Rust)type ReadFuture<'a>: Future<Output = Result<(), Self::Error>> +'a
    where
        Self: 'a;

    fn read<'a>(&'a mut self, addr: A, bs: &'a mut [u8]) -> Self::ReadFuture<'a>;
}

impl<A: AddressMode = SevenBitAddress> I2c<A> for u8{fn read<'a>(&'a mut self, addr: u8, bs: &'a mut [u8]) -> Self::ReadFuture<'a> {
          // 应用 async move
         async move {// implementation}
      }
}

当 GAT 稳固之时(预计 2022 年 Q1),Rust Embedded 异步生态系统就会马上丰盛起来。

eBPF 稳固反对

eBPF[50] 是一套通用执行引擎,能够在 Linux 内核执行沙箱程序,提供了可基于零碎或程序事件高效平安执行特定代码的通用能力,通用能力的使用者不再局限于内核开发者。

eBPF 也逐步在观测(跟踪、性能调优等)、平安和网络等畛域施展重要的角色。Facebook、NetFlix、CloudFlare 等出名互联网公司外部宽泛采纳基于 eBPF 技术的各种程序用于性能剖析、排查问题、负载平衡、防备 DDoS 攻打,据相干信息显示在 Facebook 的机器上内置一系列 eBPF 的相干工具。

eBPF 技术在网络技术中的体现,更是让人眼前一亮,BPF 技术与 XDP(eXpress Data Path)和 TC(Traffic Control)组合能够实现性能更加弱小的网络性能。

redbpf[51] 是 Rust 实现的用于构建和运行 BPF/eBPF 模块的工具库汇合,它内含很多组件能够让你更不便地应用 eBPF 性能。目前版本更新也十分沉闷,一周前刚公布 2.3.0 版本。infinyon 用它路由流量[52]。

其余沉闷保护的库和框架

  • 上篇介绍过 monoio[53],是字节跳动开源的一个基于 io-uring 的 Thread-per-core 模型的异步 Runtime,具体介绍参见:《Rust 异步运行时的设计与实现》[54]。
  • Glommio[55],是 DataDog 开源的另一款 基于 io-uring 的 Thread-per-core 模型的异步 Runtime,目前该作者曾经本人守业。
  • h3[56],http3 协定的 Rust 实现。
  • quinn[57],异步敌对的 QUIC 实现。
  • tonic[58],是 gRPC 客户端和服务器的异步实现。
  • quilkin[59],后面介绍过,是 Google Cloud 与 Embark 工作室[60] 合作开发的一个 UDP 代理,为高性能的实时多人游戏量身定做。
  • RedisJSON[61],RedisJSON 是一种高性能 JSON 文档存储,容许开发人员构建古代应用程序。它在内存中存储和解决 JSON,以亚毫秒级反对每秒数百万次操作响应工夫。JSON 文档的原生索引、查问和全文搜寻容许开发人员创立二级索引,疾速查问数据。
  • rust-rdkafka[62],一个全异步 Kafka 客户端实现。
  • smoltcp[63],一个独立的、事件驱动的 TCP/IP 堆栈,专为裸机实时零碎而设计。
  • rust-libp2p[64],libp2p 网络栈。

Eclipse zenoh

随着连网设施的数量稳固减少,业界在计算、贮存和通信能力方面遇到前所未有的异质性,并且在产生数据以及必须交付和应用数据的规模方面面临新的挑战。

此外,基于性能、效率和隐衷思考,人们越来越心愿使数据处理尽可能凑近起源,同时不便存取远距离的应用程序。换句话说,咱们正经验支流架构转换 [65],从以云端为核心的模式(从云端到雾端贮存、解决和采集数据)变成以边缘为核心[66] 的模式(在对性能、能源效率和安全性最有意义的地位贮存和解决数据)。

zenoh[67],提供了零开销的 Pub/Sub、Store/Query 和 计算。将动态数据、应用中数据、静态数据与计算整合。它奇妙地将传统的公布 / 订阅与天文上扩散的贮存、查问和计算交融,同时保有远胜任何支流堆栈的工夫和空间效率。

zenoh 的目标在于满足必须以可扩大、高效率且地位透明化的数据形式解决动态数据、静态数据和计算的应用程序的需要。

目前,Zenon 公布了 代号为 Aithusa 的版本,提供了 DDS Plugin[68] 和 ROS2[69] 的集成,可用于 IoT、机器人和主动驾驶畛域。

Web 后端

有些人说用 Rust 进行 Web 开发 是杀鸡用牛刀,这种观点其实是对「零碎级语言」的刻板印象造成的。无论从性能、工程架构还是开发效率,Rust 其实都很杰出,目前就是须要一套比拟成熟的框架。无论如何,Rust 在 Web 开发畛域的生态在逐渐成型。

Poem : 将 Rust 带入 Web 生态

Poem 是 一款由国人开发的 Rust 异步 Web 框架,其中最令人兴奋的性能是:

  • 功能丰富,全面。
  • 应用起来非常简单,文档也很棒。在此处查看一些示例[70]
  • 开箱即用的 OpenAPI 标准生成反对[71]。这是一个十分重要的问题,因为 Rust 中没有一个风行的 Web 框架原生反对 OpenAPI 标准生成。OpenAPI 的反对把 Rust 带入了 Web 生态中。
  • 反对中间件性能(相似于 Express.js)。这里的例子[72]
  • 开箱即 [73] 用地与 AWS Lambda 配合应用。
    兼容 Tower Service 和 Layer. 这让你能够在这里做一些乏味的事件,比方这个例子[74]。

已知应用 Poem 的开源我的项目:

  • delicate[75],分布式任务调度平台。
  • databend[76],Rust 实现的数据云服务。

应用 poem 的闭源我的项目

  • muse[77],网易的雷火外部艺术资源共享平台,后盾为 Rust。
  • 海康威视的 Hik-ProConnect 我的项目[78],一个基于 aws 继续集成的前端自动化部署平台。

SeaORM

SeaORM[79] 是一款异步动静 ORM,要做 Rust 版本的 Active Record,它基于 sqlx[80] 和 SeaQuery 构建。

SeaQuery[81] 是一个查问生成器,是 SeaORM 的根底,用来在 Rust 中构建动静 SQL 查问,应用一个符合人体工程学的 API 将表达式、查问和模式构建为形象语法树(AST)。在同一个 接口 前面,对立反对 MySQL、Postgres 和 SQLite。它相似于 Rails 的 ActiveRecord ORM 框架的 Arel[82] 组件。

目前 SeaORM 正在高速开发,曾经公布 0.5 版本。SeaORM 的开发体验看上去不错,具体对 SeaORM 的介绍能够参考 Rust 生态察看| SeaORM: 要做 Rust 版本的 ActiveRecord[83] 这篇文章。

其余有意思的框架

  • axum[84],是 tokio 官网新公布的 Web 框架,它的特色是无宏(macro-free),并且基于 Tower 中间件形象,充分利用 Tower 生态。毛病就是泛型用的太多。
  • perseus[85],比方减少了 plugin 零碎,反对 i18n,i18n 是基于 fluent 来做的。fluent 之前帮 rust 官网翻译时候用过,十分不便。

大前端

前端基础设施

Deno

Deno[86] 是一个古代且平安的 TypeScritp 和 JavaScript 运行时,基于 V8 和 Rust 实现。Promises、async/await、ES 模块和异步迭代器等在 Deno 中都是一等公民。

为了确保 JavaScript 的将来倒退将持续实用于 Deno 和服务器端 JavaScript 运行时,Deno 公司已退出负责 JavaScript 规范(ECMA-262)的 ECMA 国际标准组织,并参加到 TC39 工作组的工作中,Luca Casonato(卢卡·卡索纳托)将是 Deno 在 TC39 的次要代表。

Deno 也与 gfx-rs 单干[87],反对了 wgpu,用于提供开箱即用的 GPU 减速机器学习性能。因为 Deno 的模块化架构,WebGPU 实现是可插拔组件之一。

Deno 目前在高速开发中,截止目前曾经公布 1.17.3 版本。目前有 13 家公司在其技术堆栈中应用 Deno,包含 Cloudless、Appwrite 和 The Lonero Foundation。

parcel && swc

parcel[88],是一个 Rust 实现的 Web 利用打包工具,实用于教训不同的开发者。它利用多核解决提供了极快的速度,并且不须要任何配置。它基于 swc 实现。最近 parcel 还开源了一个新的 CSS 解析、转换和压缩工具 parcel-css[89]。

swc[90],是 Speedy Web Compiler 缩写,是一款用 Rust 编写的超快 TypeScript / JavaScript 编译器。版本更新十分沉闷,三天前刚公布 1.2.179 版本。

我的项目状态:parcel[91] / swc[92](Rust)vs esbuild[93] (Go)

  • swc 作者 和 parcel 外围贡献者当初曾经被 Next.js 雇佣;esbuild 是作者本人的业余我的项目;
  • swc 目前至多有四个全职开发了。
    swc 的开源活跃度要高于 esbuild:swc 的 总 PR 数达到 1600 多,而 esbuild 只有 200 多个。
  • swc 的 issues 和 esbuild 的 issues 数相仿,然而 swc 的 issues 显著分类管理更加明确和粗疏,并且都和版本公布的里程碑进行了挂钩。
  • swc 和 esbuild issues 频率十分高,响应都比拟及时。
  • parcel 我的项目 PR 总数超过 2000,issues 超过 4000,十分沉闷。

抖音公司

目前抖音小程序业务端也在招幕 Rust 开发者,在一些前端基础设施(比方编译器)上思考应用 Rust/C++ 来进行实际。

WebAssembly 前端框架

Yew

Yew[94] 是一个设计先进的 Rust[95] 框架,目标是应用 WebAssembly[96] 来创立多线程的前端 web 利用。它基于组件,灵感来自于 React 和 Elm,高性能,且反对与 JavaScript 交互。目前还在沉闷开发中。

Sycamore

sycamore[97] 是一个响应式的无虚构 dom 的 前端库,同样是基于 Rust 和 WebAssembly。它的特点是,不反对 JavaScript,因为不须要。

其余框架

  • percy[98], 实验性的 Rust + wasm 前端框架。
  • seed[99],基于 Elm 架构的 Rust 前端框架。
  • sauron[100], 一个多功能的 Web 框架和库,用于构建客户端和 / 或服务器端 Web 应用程序,十分重视简略性。它实用于开发应用渐进式渲染的 Web 应用程序。
    MoonZoon[101],正在开发的一款全栈 Rust 框架,号称没有 JS/CSS/HTML 等,开发进度较慢。

其余畛域

Rust 与 区块链

Rust 与 智能合约

许多区块链要么运行用 Rust 编写的智能合约,要么用 Rust 实现它们的智能合约运行时或语言。它们分为几类:

  • 基于 WebAssembly 的智能合约,Rust 能够编译为 WASM,如 Elrond[102]、Holochain[103]、NEAR[104]、Secret Network[105]、Substrate[106]。这些根本都有 Rust SDK。
  • 反对将 Rust 编译到其余 VM 的工具,例如 Nervos[107] (RISC-V) 和 Solana[108] (eBPF)。

Nervos 合约是用 Rust 和他们的 Capsule[109]库编写的。除了作为惟一一个运行 RISC-V 的区块链之外,Nervos 还是一个常见的智能合约区块链,它应用 UTXO 模型而不是账户模型。

Solana 运行一个特地乖僻的 VM:一个基于 eBPF[110] 的用户空间 VM rbpf[111]。Solana 曾经将一个无效的 Rust->eBPF 工具链组合在一起,其中包含一个反对 eBPF 的 Rust 编译器的分支[112]。当然,因为 eBPF 不反对循环,这里的 Rust 肯定很乏味。

  • Rust 实现智能合约语言的人,例如 Solang[113](一种 Solidity 到 WASM 编译器)、Leo[114](一种零常识语言)和 Move[115](Diem 的语言)。只管许多链正在转向通用 VM,特地是转向 WASM,但不这样做的理由次要有两个:心愿与以太坊 EVM 兼容,以及基于零常识证实。Move 是一个绝对常见的案例,因为它既是它本人的语言,又是它本人的 VM,但没有像零常识语言那样领有自定义 VM 的显著起因。

一些值得关注的我的项目

  • solang[116],是一个用 Rust 实现的 Solidity 编译器,但它不针对以太坊 EVM。相同,它应用 LLVM 作为后端,这意味着它能够潜在地针对大多数不运行 EVM 的区块链。目前包含 Substrate、Solana、ewasm[117]和 Sawtooth[118]。
  • rust-umbral[119],是一种代理从新加密 [120] 计划,通过该计划,密文的所有者 Alice 能够指定第三方(代理)从新加密要由 Bob 解码的密文,而无需向代理走漏明文。它是由 NuCypher[121]我的项目开发的。
  • noir[122],是一种用于构建零常识证实的语言和编译器。它旨在与多个生成证实的后端一起应用,其中第一个用于 barretenberg[123],正如 Aztec Network[124]所应用的那样。
  • MASQ[125],是一个网状笼罩网络,有点像 TOR,但具备参加的加密经济激励措施。
  • TDN[126],可信分布式网络是构建分布式应用程序的框架,反对 p2p 通信、多个穿插通信区块链、多层区块链和多个帐户模型。它建设在一个新的 p2p 库 Chamomile 之上。
  • bip32[127],这是 BIP32[128]分层确定性钱包和 BIP39 助记符的纯 Rust、通用、no_std 敌对的实现。
  • jsonrpsee[129],来自 Parity 的 JSON-RPC[130]的异步实现,它还创立了 jsonrpc[131] crate。
  • stateright[132],是用于在 Rust 中实现分布式系统的模型查看器。与 TLA+ 等传统模型查看器不同,Stateright 是 Rust DSL,可能查看零碎的 Rust 生产实现。它包含 Paxos 和其余简略算法的示例。
  • arti[133],是用 Rust 对 Tor[134]的官网重写,于 7 月首次发表[135]。Tor 是分布式基础设施的要害局部,通过该我的项目能够将 Tor 嵌入到咱们的应用程序中。
  • openmls[136],是 Messaging Layer Security 协定 [137] 的 Rust 实现,这是 IETF MLS 工作组正在开发的一个正在进行的规范。该协定旨在解决平安消息传递中依然普遍存在的问题:尽管当初能够对两方对话进行弱小的端到端加密,但对于端到端加密群组通信,却很少有好的解决方案.。MLS 指定了“一种密钥建立协定,该协定为规模从 2 到数千的组提供高效的异步组密钥建立,具备前向窃密和泄露后安全性”。
  • mina-rs[138],是由 ChainSafe[139]开发的 Rust 中 Mina 的实现。它的开发不仅思考了挪动环境,还思考了 WASM,这表明咱们将可能间接在浏览器中嵌入一个残缺的节点。Mina[140]是一个新的区块链网络,它应用零常识证实来验证链的状态,而无需拜访残缺的区块链,而只是一个很小的(~22k)证实。
  • arloader[141],是一个用于将文件上传到 Arweave[142]的命令行客户端。公布到 Arweave 的文件将永恒存储。该平台通常用于存储 NFT 信息。能够应用 Arweave 原生代币或 SOL 领取费用。

区块链生态信息

2021 年区块链几大公链出镜比拟多的是 Near / Solana/ Dfinity / NeverOS,整年都有开发者激励打算和黑客松流动。

2021 年比拟沉闷的概念是 跨链、DeFI、NFT 和 Web3。

但区块链是一个很大的生态,如果要盘点的话,能够独自出一篇很长篇幅的文章了。但幸好有 Rust in Blockchain ❤ rib.rs[143] 这样的站点为咱们记录每月区块链生态的动静。感兴趣能够本人翻一下。

元宇宙

元宇宙能够说是 2021 年最疯狂的概念了,但究其技术栈,和 图形学、人工智能、区块链、VR/AR、IoT 等畛域十分相干。那么 Rust 在这些方面筹备好了吗?其中图形学、人工智能、区块链、IoT 畛域后面都盘点过,具体状态曾经分明。

VR/AR 畛域,目前 Rust 生态也有人做,但不是很丰盛:

openxrs[144],这是对 OpenXR[145] 的 Rust 绑定。OpenXR 是用于 XR 应用程序的 API(应用程序编程接口),是一个开源规范,开发者能够用 OpenXR 实现跨设施的利用构建与部署。

“XR 是指计算机通过人机交互产生的实在与虚构组合环境的间断统一体,包含与虚拟现实(VR)、加强事实(AR)和混合事实(MR)相干的技术。OpenXR 是应用程序与过程内或过程外的“XR 运行时零碎”之间的接口,或者简称为“运行时”。运行时能够解决帧合成、外围设备治理和原始跟踪信息等性能。

Rust 对 VR/AR 的反对,兴许就从 OpenXR 这里起步了。

makepad[146],是一个 VR,Web 和本机渲染 UI 框架 和 IDE,基于 Rust 和 WebAssembly(WebGL)技术。作者是 Cloud9 IDE 的创始人。该我的项目也蕴含白皮书[147],论述了它的愿景。目前开发进度不是很频繁。

信息安全畛域

简略盘点一些目前还在沉闷保护的安全类工具或框架:

  • rustscan[148],是一个现代化高性能的端口扫描器,并且提供脚本引擎来反对运行 Python,Lua,Shell。反对 自适应学习(Adaptive learning)。用的越多,RustScan 越智能,不是基于臃肿的机器学习,次要是基于根本数学。
  • feroxbuster[149],一款高性能的内容发现工具,用于浸透测试。feroxbuster 应用蛮力联合单词列表在目标目录中搜寻未链接的内容,这是一种攻击行为。这些资源可能存储无关 Web 应用程序和操作系统的敏感信息,例如源代码,凭据,外部网络寻址等。此攻打也称为可预测资源地位,文件枚举,目录枚举和资源枚举。
  • Enarx[150],这是一个组织,由红帽公司牵头其余知名企业来做可信执行环境的利用部署零碎。
  • sn0int[151],半自动高级公开资源情报(OSINT)框架和程序包管理器,用于扫描指标 IP 地址、电子邮件、网站和组织信息,并从不同音讯源收集各种情报信息。
  • sniffglue[152],多线程网络嗅探器。Kpcyrd 常常应用 tcpdump,但他认为输入更敌对的话会更好,并且 wireshark 也常常存在破绽,tcpdump 有时也有破绽,所以他用 Rust 实现了这个工具。
  • ripasso[153],一款明码管理工具。
  • rustpad[154],是经典 padbuster 的多线程继承者,用 Rust 编写。它利用 Padding Oracle 破绽在不晓得加密密钥的状况下解密任何密文或加密任意纯文本!
  • vaultwarden[155],非官方 Bitwarden(明码治理)兼容服务器,以前称为
    bitwarden_rs。
  • innernet[156],一个在后盾应用 WireGuard(下一代 VPN 技术)的专用网络系统。
  • moonwalk[157],在 Linux Exploitation 期间通过在系统日志和文件系统工夫戳上留下零痕迹来覆盖形迹。仅用于帮助 红队 [158] 的操作。
  • CaptfEncoder[159],CaptfEncoder 是一款跨平台网络安全工具套件,提供网络安全相干编码转换、古典明码、密码学、公钥加密、聚合查问、杂项等多种实用工具。CaptfEncoder V3 版本应用 Rust 开发,可执行程序体积小,速度更快、性能更优、性能更强。其作者目测在阿里云。

科研艺术畛域

  • nannou[160],旨在让艺术家创作本人的艺术。在德国 mindbuffer[161] 公司就是基于 nannou 和 koto 来创立实体艺术我的项目:应用 486 步进电机,86,000 个 LED 和 5 通道颗粒式合成引擎,创立能够变换形态绚丽多彩的电子艺术品[162]。
  • Glicol[163],一个面向图的音乐实时编程语言。Glicol 能够帮忙您应用代码制作音乐。您能够简略地连贯不同的节点以造成循环,用 Rust 编写,得益于 WebAssembly,它能够在浏览器中丝滑运行。
  • creek[164],用于音频的实时磁盘流 IO。
  • Symphonia[165],纯 Rust 多媒体格局解复用、标签读取和音频解码库。
  • cpal[166],纯 Rust 的跨平台音频 I/O 库。
  • dasp[167],用于数字音频信号处理。
  • Meadowlark[168],旨在成为实用于 Linux、Mac 和 Windows 的收费和开源 DAW(数字音频工作站)。
  • 3photons-rust[169],一位物理迷信研究员保持应用 Rust,来实现模仿 3 个光子构建了一种奇怪模式的“分子”光。
  • varlociraptor[170],实现了一种新鲜、对立的齐全不确定性感知办法,用于在任意场景中调用基因组变异。该库是《为什么科学家转向 Rust》[171]一文中提及的生物信息处理库。目前还在沉闷保护。
  • eigenvalues[172],来自荷兰电子科技核心研究员实现的一个特征值求解库,具体能够参考这篇文章《将 Rust 用于迷信数值利用:从过来的教训中学习》[173]。

Rust 职业岗位

职业岗位分类

因为 Rust 的平安属性,目前在金融畛域利用 Rust 的公司比拟多,所以目前寰球 Rust 工作岗位最多的散布就是 区块链 和 量化金融。

基本上按目前寰球 Rust 岗位招聘,能够分为以下几类:

  1. 区块链 / 量化金融 / 银行业
  2. 基础设施(云原生平台开发):数据库 / 存储 / 数据服务 / 操作系统 / 容器 / 分布式系统
  3. 平台工具类:远程桌面 / 近程服务类产品 / SaaS / 近程工作类产品(比方 Nexthink)
  4. AI / 机器学习 / 机器人
  5. 客户端跨平台组件开发
  6. 平安工程师:区块链平安 / 信息安全
  7. 嵌入式工程师
  8. 广告服务商类,比方 Adinmo
  9. 音视频实时通信工程师
  10. 电商平台
  11. 软件征询

对于具体的 Rust 职位招聘,能够在 Rust Weekly / Reddit r/rust 频道 / Rust Magazine 社区月刊 / Rustcc 论坛,以及各大招聘网站中能够找到。

Rust 国内局部职位信息【均可内推】

  1. 字节跳动。字节跳动外部基础设施、飞书、抖音都在用 Rust。这里有很多 Rust 职位需要。
  2. 非凸科技。国内做量化的企业,面向期货 / 股票市场。
  3. 海致星图。用 Rust 做图数据,是海致团体旗下公司。可近程。
  4. 达坦科技。用 Rust 做分布式存储,间断创业者王璞博士带队的初创企业。可近程。
  5. databend。用 Rust 做数据云的初创公司。可近程。

还有很多其余招聘,其中区块链职位居多,这里就不一一列举了。

寰球可齐全 Remote Rust 职位盘点

请留神,一些号称齐全近程的职位实际上只是思考美国 / 加拿大,有时甚至是欧盟居民,能不能在中国找到这些职位,可能须要看你的运气和沟通程度!

  • RedHat[174],有 Rust 职位,可近程。能够在 Reddit 私信用户 @sheepdog69[175]理解详情。
  • tangram[176],一家开发机器学习类工具的公司,能够发送邮件征询近程工作,但该职位只思考美国 / 加拿大 / 欧洲的人员。
  • Materialize[177],实时流数据库(后面介绍过)有近程职位,这个须要发邮件征询。
  • toyotaconnected[178],目前只容许在美国 12 州内进行近程,它们也是 Rust 基金会的成员之一。他们将 Rust 用于机器学习工作和设施上。供应商 C 和 CPP 代码中的大量互操作以及咱们在丰田和雷克萨斯汽车外部解决的许多很酷、乏味的问题,因为 5G 变得越来越风行。
  • Era Software[179],近程(美国 / 加拿大 / 欧洲),与 Elasticsearch 竞争。所有数据库工程职位都是针对 Rust 的。
  • Qovery[180],近程(欧盟),Qovery 是一个平台,它为任何开发人员提供了在几秒钟内将他们的应用程序部署到云中的超能力。
  • estuary[181],近程 Rust 开发人员来开发咱们的实时数据平台 Flow[182],须要发邮件征询。
  • infinyon[183],近程(美国),用于为实时数据流构建牢靠且可扩大的基础架构,面向的产品是 Fluvio 和 InfinyOn Cloud。
  • Ockam[184],Ockam 正在构建开源、端到端加密和互相验证的通信协议和库,这些协定和库能够在资源受限、间歇性连贯的物联网设施和连贯机器中工作。
  • 1password[185],近程(加拿大、美国和英国),明码管理软件。
  • IOHK[186],近程,区块链,具体请点击链接申请工作。

下面列出的只是网络上可见的一部分,对于国内的小伙伴来说,这些职位可能无奈申请。对于国外的小伙伴来说,兴许是一个福音。

Rust 语言教育遍及状态

国内外出版书籍

从 2018 年到 2022 年国内外出版的书排列。

国内

  • 《深入浅出 Rust》
  • 《Rust 编程之道》
  • 《Rust 权威指南》
  • 《Rust 编程:入门、实战与进阶》

国外:

  • Rust in Action[187]
  • Programming Rust, 2nd Edition[188]
  • Rust for Rustaceans[189]
  • Refactoring to Rust[190]
  • Black Hat Rust [191]
  • Hands-on Rust[192]
  • Zero To Production In Rust [193]

这些书并非全副,还有很多国外的书没有列举进去。

能够看出,国外的 Rust 书在陆续增多,国内也有这个趋势。

高校教育遍及

国内

  • 国内将 Rust 利用于教学中的高校,据我所知,只有清华大学的 OS 课程。参见:用 Rust 写操作系统 | 清华 rCore OS 教程介绍[194]。

国外:

  • 波兰华沙(Warsaw)大学[195],目前该学校决定为二年级学生开设 Rust 课程。
  • 耶鲁大学的钟林传授开设《CPSC 429a, 计算机系统设计原理》和《CPSC 425b,挪动和嵌入式零碎》[196] 反对 Rust 语言。然而该课程不是公开课。

Reddit 探讨:你幻想中的 Rust 大学课程是什么样的?

波兰华沙(Warsaw)大学的一位助教在 Reddit 发动这样的探讨[197],始终在传授 C 语言中的内存治理和编程(第一年)和 Java 和 C 中的并发和并行编程(第二年)。目前该学校决定为二年级学生开设 Rust 课程,他被委托负责筹备课程和授课。他想向 Rust 开发者寻求倡议,你幻想中的 Rust 大学课程是什么样的呢?

他目前的教学计划大略如下:

  • 将官网的 the book 作为教材。作为老师,他会将 the book 中的常识稀释为 PPT 进行传授。
  • 在学习语法的过程中,也掺杂一些 Rust 生态的最佳实际内容。
  • 在学习完 the book 之后,将以异步为次要偏重内容。
  • 设置五个不同等级的小工作,让学生实现,每个工作有十天工夫来实现。

具体内容能够参考 reddit 贴。在评论中有人给出一些倡议:

  • 一位本科生应用 Rust 实现强化学习库:https://github.com/ZuseZ4/Rus…。然而他拥护将 Rust 用于机器学习的教学中,因为应用 Python 学习机器学习更加简略。(这样说也很有情理,学习的时候要考究学习指标,学生的学习指标是学习机器学习畛域常识,而非 Rust)。
  • 一位敌人说,在大学里应该传授学生如何解决问题。比方通过学习多线程生命游戏的实现,来学习解决多线程并发的问题。

你对此有何认识呢?

结语

对 Rust 做生态调研,是一件很累的事件,因为 Rust 作为一门真正的通用型语言,其生态信息量太大,波及畛域泛滥。

但我也保持把这篇报告做完了,因为我切实很喜爱 Rust 社区,Rust 社区在我眼里,就是充斥了心愿和蓬勃生机的社区。

心愿你也和我一样,能够喜爱 Rust。

参考资料

参考资料
[1]《三万言|2021 年 Rust 行业调研报告》: https://zhuanlan.zhihu.com/p/…
[2]Transformers: https://github.com/huggingfac…
[3]tokenizers: https://link.zhihu.com/?targe…
[4]Linfa: https://link.zhihu.com/?targe…
[5]Rust 机器学习之书: https://link.zhihu.com/?targe…
[6]Roadmap: https://github.com/rust-ml/li…
[7]scikit-learn: https://scikit-learn.org/stable/
[8]Polars: https://github.com/ritchie46/…
[9]Apache Arrow: https://github.com/apache/arrow
[10]db-benchmark: https://h2oai.github.io/db-be…
[11]Xomnia: https://www.xomnia.com/
[12]oxide-enzyme : https://github.com/rust-ml/ox…
[13]Enzyme: https://github.com/wsmoses/en…
[14]MegFlow: https://github.com/MegEngine/…
[15] 猫猫围栏 https://github.com/MegEngine/…
[16]懒出新境界!程序员居然造出一台人工智能猫粮机!: https://www.bilibili.com/vide…
[17]qdrant: https://github.com/qdrant/qdrant
[18]tch-rs: https://link.zhihu.com/?targe…
[19]ndarray: https://link.zhihu.com/?targe…
[20]nalgebra: https://github.com/dimforge/n…
[21]Dimforge 开源组织: https://github.com/dimforge
[22]tvm-rs: https://link.zhihu.com/?targe…
[23]Neuronika: https://link.zhihu.com/?targe…
[24]Whatlang: https://link.zhihu.com/?targe…
[25]Tauri: https://tauri.studio/en/docs/…
[26]https://githubhelp.com/Fournu… https://githubhelp.com/Fournu…
[27]wry: https://github.com/tauri-apps…
[28]tao: https://github.com/tauri-apps…
[29]egui: https://github.com/emilk/egui
[30]README: https://github.com/emilk/egui…
[31]Reddit 一位网友: https://www.reddit.com/r/rust…
[32]gtk4-rs: https://github.com/gtk-rs/gtk…
[33]gtk4-rs: https://github.com/gtk-rs/gtk…
[34]iced: https://github.com/iced-rs/iced
[35]druid: https://github.com/linebender…
[36]Runebender: https://github.com/linebender…
[37]azul: https://github.com/fschutt/azul
[38]lvgl-rs: https://github.com/rafaelcari…
[39]Tokio: https://tokio.rs/
[40]async-std: https://github.com/async-rs/a…
[41]tokio_uring: https://github.com/tokio-rs/t…
[42]tracing(链路追踪): https://github.com/tokio-rs/t…
[43]console(异步调试,刚公布 0.1 版本): https://github.com/tokio-rs/c…
[44]loom(并发测试): https://github.com/tokio-rs/loom
[45]lunatic: https://github.com/lunatic-so…
[46]go-routines: https://golangbot.com/goroutines
[47]异步执行(基于 smol 实现): https://docs.rs/smol
[48]embassy: https://github.com/embassy-rs…
[49]Rust async trait 的 MVP : https://rust-lang.github.io/a…
[50]eBPF: https://ebpf.io/
[51]redbpf: https://github.com/foniod/redbpf
[52]路由流量: https://www.infinyon.com/blog…
[53]monoio: https://github.com/bytedance/…
[54]《Rust 异步运行时的设计与实现》: https://rustmagazine.github.i…
[55]Glommio: https://github.com/DataDog/gl…
[56]h3: https://github.com/hyperium/h3
[57]quinn: https://github.com/quinn-rs/q…
[58]tonic: https://github.com/hyperium/t…
[59]quilkin: https://github.com/googleforg…
[60]Embark 工作室: https://www.embark-studios.com/
[61]RedisJSON: https://github.com/RedisJSON/…
[62]rust-rdkafka: https://github.com/fede1024/r…
[63]smoltcp: https://github.com/smoltcp-rs…
[64]rust-libp2p: https://github.com/libp2p/rus…
[65]架构转换: https://perspectives.tech/201…
[66]以边缘为核心: https://edgenative.eclipse.org/
[67]zenoh: https://github.com/eclipse-ze…
[68]DDS Plugin: https://github.com/eclipse-ze…
[69]ROS2: https://docs.ros.org/en/foxy/…
[70]示例: https://github.com/poem-web/p…
[71]反对: https://github.com/poem-web/p…
[72]这里的例子: https://github.com/poem-web/p…
[73]开箱即: https://crates.io/crates/poem…
[74]例子: https://github.com/poem-web/p…
[75]delicate: https://github.com/BinChengZh…
[76]databend: https://github.com/datafusela…
[77]muse: https://leihuo.163.com/
[78]海康威视的 Hik-ProConnect 我的项目: https://www.hikvision.com/en/…
[79]SeaORM: https://github.com/SeaQL/sea-orm
[80]sqlx: https://github.com/launchbadg…
[81]SeaQuery: https://github.com/SeaQL/sea-…
[82]Arel: https://github.com/rails/rail…
[83]Rust 生态察看| SeaORM: 要做 Rust 版本的 ActiveRecord: https://rustmagazine.github.i… 生态察看 -seaorm- 要做 -rust- 版本的 -activerecord
[84]axum: https://github.com/tokio-rs/axum
[85]perseus: https://github.com/arctic-hen…
[86]Deno: https://deno.land/
[87]gfx-rs 单干: https://gfx-rs.github.io/2021…
[88]parcel: https://github.com/parcel-bun…
[89]parcel-css: https://github.com/parcel-bun…
[90]swc: https://github.com/swc-projec…
[91]parcel: https://github.com/parcel-bun…
[92]swc: https://github.com/swc-projec…
[93]esbuild: https://github.com/evanw/esbuild
[94]Yew: https://github.com/yewstack/yew
[95]Rust: https://www.rust-lang.org/
[96]WebAssembly: https://webassembly.org/
[97]sycamore: https://github.com/sycamore-r…
[98]percy: https://github.com/chinedufn/…
[99]seed: https://github.com/seed-rs/seed
[100]sauron: https://github.com/ivanceras/…
[101]MoonZoon: https://github.com/MoonZoon/M…
[102]Elrond: https://github.com/ElrondNetwork
[103]Holochain: https://github.com/holochain
[104]NEAR: https://github.com/near
[105]Secret Network: https://github.com/enigmamcp
[106]Substrate: https://github.com/paritytech…
[107]Nervos: https://github.com/nervosnetwork
[108]Solana: https://github.com/solana-labs
[109]Capsule: https://github.com/nervosnetw…
[110]eBPF: https://ebpf.io/
[111]rbpf: https://github.com/solana-lab…
[112]反对 eBPF 的 Rust 编译器的分支: https://github.com/solana-lab…
[113]Solang: https://github.com/hyperledge…
[114]Leo: https://github.com/AleoHQ/leo
[115]Move: https://github.com/diem/diem/…
[116]solang: https://github.com/hyperledge…
[117]ewasm: https://github.com/ewasm
[118]Sawtooth: https://github.com/hyperledge…
[119]rust-umbral: https://github.com/nucypher/r…
[120]代理从新加密: https://en.wikipedia.org/wiki…
[121]NuCypher: https://www.nucypher.com/
[122]noir: https://github.com/noir-lang/…
[123]barretenberg: https://github.com/AztecProto…
[124]Aztec Network: https://github.com/AztecProtocol
[125]MASQ: https://github.com/MASQ-Proje…
[126]TDN: https://github.com/CympleTech…
[127]bip32: https://github.com/iqlusionin…
[128]这是 BIP32: https://github.com/bitcoin/bi…
[129]jsonrpsee: https://github.com/paritytech…
[130]JSON-RPC: https://www.jsonrpc.org/speci…
[131]jsonrpc: https://github.com/paritytech…
[132]stateright: https://github.com/stateright…
[133]arti: https://gitlab.torproject.org…
[134]Tor: https://www.torproject.org/
[135]于 7 月首次发表: https://blog.torproject.org/a…
[136]openmls: https://github.com/openmls/op…
[137]Messaging Layer Security 协定: https://datatracker.ietf.org/…
[138]mina-rs: https://github.com/ChainSafe/…
[139]ChainSafe: https://chainsafe.io/
[140]Mina: https://minaprotocol.com/
[141]arloader: https://github.com/CalebEvere…
[142]Arweave: https://www.arweave.org/
[143]Rust in Blockchain ❤ rib.rs: https://rustinblockchain.org/
[144]openxrs: https://github.com/Ralith/ope…
[145]OpenXR: https://www.khronos.org/regis…
[146]makepad: https://link.zhihu.com/?targe…
[147]白皮书: https://link.zhihu.com/?targe…
[148]rustscan: https://link.zhihu.com/?targe…
[149]feroxbuster: https://link.zhihu.com/?targe…
[150]Enarx: https://link.zhihu.com/?targe…
[151]sn0int: https://link.zhihu.com/?targe…
[152]sniffglue: https://link.zhihu.com/?targe…
[153]ripasso: https://link.zhihu.com/?targe…
[154]rustpad: https://github.com/Kibouo/rus…
[155]vaultwarden: https://github.com/dani-garci…
[156]innernet: https://github.com/tonarino/i…
[157]moonwalk: https://github.com/mufeedvh/m…
[158]红队: https://en.wikipedia.org/wiki…
[159]CaptfEncoder: https://github.com/guyoung/Ca…
[160]nannou: https://link.zhihu.com/?targe…
[161]mindbuffer: https://link.zhihu.com/?targe…
[162]创立能够变换形态绚丽多彩的电子艺术品: https://link.zhihu.com/?targe…
[163]Glicol: https://glicol.org/
[164]creek: https://github.com/RustyDAW/c…
[165]Symphonia: https://github.com/pdeljanov/…
[166]cpal: https://github.com/RustAudio/…
[167]dasp: https://github.com/RustAudio/…
[168]Meadowlark: https://github.com/Meadowlark…
[169]3photons-rust: https://github.com/HadrienG2/…
[170]varlociraptor: https://github.com/varlocirap…
[171]《为什么科学家转向 Rust》: https://www.nature.com/articl…
[172]eigenvalues: https://github.com/felipeZ/ei…
[173]《将 Rust 用于迷信数值利用:从过来的教训中学习》: https://blog.esciencecenter.n…
[174]RedHat: https://www.redhat.com/en/jobs
[175]@sheepdog69: https://www.reddit.com/user/s…
[176]tangram: https://tangram.dev
[177]Materialize: https://materialize.com/
[178]toyotaconnected: https://toyotaconnected.com/j…
[179]Era Software: https://era.co/
[180]Qovery: https://www.qovery.com/blog/w…
[181]estuary: https://www.estuary.dev/about…
[182]Flow: https://github.com/estuary/flow
[183]infinyon: https://www.infinyon.com/care…
[184]Ockam: https://jobs.lever.co/ockam/9…
[185]1password: https://jobs.lever.co/1passwo…
[186]IOHK: https://apply.workable.com/io…
[187]Rust in Action: https://www.manning.com/books…
[188]Programming Rust, 2nd Edition: https://www.oreilly.com/libra…
[189]Rust for Rustaceans: https://nostarch.com/rust-rus…
[190]Refactoring to Rust: https://www.manning.com/books…
[191]Black Hat Rust : https://github.com/skerkour/b…
[192]Hands-on Rust: https://pragprog.com/titles/h…
[193]Zero To Production In Rust : https://www.zero2prod.com/
[194]用 Rust 写操作系统 | 清华 rCore OS 教程介绍: https://rustmagazine.github.i…
[195]波兰华沙(Warsaw)大学: https://mimuw.edu.pl/en
[196]《CPSC 429a, 计算机系统设计原理》和《CPSC 425b,挪动和嵌入式零碎》: http://catalog.yale.edu/ycps/…
[197]波兰华沙(Warsaw)大学的一位助教在 Reddit 发动这样的探讨: https://www.reddit.com/r/rust…

退出移动版