Rust 有一个非常活跃和快节奏的开源生态系统,有大量的贡献者致力于大量的很棒的项目。

如果你问——我可以在 Rust 中构建什么?答案几乎是一切。

本文将介绍一些开源 Rust 库、框架和存储库,它们可能对研究或用于您自己的项目很有用。

为了您的方便,我将它们划分为 Web 开发、游戏开发、区块链等领域。让我们深入挖掘!

Rust 的 Web 开发框架

Rust web 开发

你能用 Rust 构建一个 Web 应用程序吗?确实!

Rust 有多个速度极快的 Web 框架——Actix、Rocket 和 Yew——你可以使用符合你需求和偏好的那个。

火箭

Rocket是 Rust 生态系统中最适合初学者的 Web 框架。它是高度可定制的,可帮助您快速启动新应用程序。同时,它避免了很多不必要的样板。 Rocket 还包含许多功能,这意味着您无需远离框架即可构建所需的一切。

与 Actix Web 相比,该框架在夜间 Rust 上运行——该语言的“实验”版本。

Actix Web

Actix Web通常被认为比 Rocket 更高效、更稳定。下面,它与Erlang和Akka中使用的演员模型一起使用。

与 Rocket 相比,它“包含的电池”更少,这意味着您很可能需要使用第三方库来获得额外的功能。

红豆杉

Yew是一个 Rust 框架,用于使用 WebAssembly 创建 Web 应用程序。在它的主要优点中,它列出了一个类似 React 和 Elm 的基于组件的框架,由于多线程支持而具有出色的性能,以及 JavaScript 互操作性。

到目前为止,它还没有准备好生产,但应该是辅助项目和内部工具的绝佳选择,特别是如果你想使用 WASM。

左拉

如果您需要快速简单地为静态网站提供服务,那么Zola是一款出色的工具,可以创建快速且可扩展的网页,而无需任何其他依赖项或 JS 膨胀。

翘曲

Warp是一个用 Rust 编写的 Web 服务器框架。与 Rocket 和 Actix 相比,它对于 Web 框架来说相当苗条,并且只会为您提供开箱即用的基本功能。

游戏开发

Rust 游戏开发

Rust 在游戏开发中非常出色,原因与 C++ 相同:它具有可预测的性能。以下是一些可用于构建自己的 Rust 游戏的引擎。

贝维

两个主要的 Rust 游戏引擎是 Bevy 和 Amethyst。其中,Bevy是较新较酷的一款。它是一个简单的数据驱动引擎,本质上可以称为 Amethyst 2.0,因为它深受其启发。

有关 Bevy 的更多信息,您可以查看Bevy 书。

紫水晶

Amethyst是两者中更成熟的一种,因此,它具有大型项目可能需要的更多功能以及与 3rd 方库的更好集成。但是,贝维正在快速追赶。如果您正在为新项目寻找引擎,我建议您同时查看它们并查看您更喜欢哪一个。

 

如果您正在寻找一些简单的开始,ggez是一个轻量级的跨平台游戏框架,用于以最小的摩擦制作 2D 游戏。


如果您想了解更多关于 Rust 游戏开发的信息,请查看我们玩游戏了吗?

操作系统

Rust 操作系统

在操作系统开发中,Rust 是 C 的绝佳替代品,因为它提供了相同水平的性能,同时又保证了内存安全。实际上,开发人员正在研究将 Rust 添加到 Linux 内核的可能性,微软也在试验它。

以下是一些纯粹用 Rust 编写的开源操作系统:

氧化还原

Redox是用 Rust 编写的操作系统,它使用 Rust 的创新来构建现代微内核。

intermezzOS

intermezzOS是一款教学操作系统,专门用于向来自其他编程领域的有经验的开发人员介绍系统编程概念。

忒修斯

Theseus是一个用 Rust 编写的新操作系统,它呈现出一种新颖的操作系统结构,并声称可以避免状态溢出现象,当一个实体的状态通过与另一个实体的交互而永久改变时会发生这种情况。

有很多东西要读——这里有一篇关于该项目的论文。

GUI开发

Rust GUI 开发

尽管 Rust 因其构建引人入胜的用户界面的能力而闻名,但仍然有很多好的库可以用来构建 GUI。

德鲁伊

Druid是一个实验性的 Rust 原生 UI 工具包,专注于构建简单、优美的用户体验。它是面向数据的,并受到 Flutter、SwiftUI 等现代框架的启发。

想了解更多,可以查看Druid book。

冰镇

Iced是一个跨平台的 GUI 库,专注于简单性和类型安全。它深受 Elm 的启发。虽然它现在仍处于试验阶段,但它是在 Rust 中为您的副项目创建 GUI 的绝佳选择。

轨道小部件工具包

Orbital Widget Toolkit是一个跨平台工具包,用于使用 Rust 构建可扩展的用户界面。它专注于速度、易用性和跨平台兼容性。

硬度

Tauri是一个用于构建适用于 Windows、Linux 和 macOS 的桌面应用程序的框架。有了它,您可以使用任何编译为 HTML/CSS/JS 的前端框架来构建 UI,并将 Rust 作为后端。


如果你想了解更多关于 Rust 中 GUI 开发可能性的信息,这里有一篇大文章,它涵盖了大多数库。

区块链

Rust 区块链

开放以太坊

OpenEthereum的主要目标是成为最快、最轻、最安全的以太坊客户端。它是使用 Rust 开发的,并声称提供对快速可靠的服务至关重要的核心基础设施。

灯塔

Lighthouse是一个开源的以太坊 2.0 客户端,用 Rust 编写并由 Sigma Prime 维护。

Parity 技术:Polkadot 和 Substrate

Parity Technologies 致力于为去中心化网络构建区块链基础设施。

其项目包括Substrate,一个用于区块链开发的模块化框架,以及Polkadot,一个区块链网络。这两个项目都在其实现中大量使用 Rust。

其他项目

其他 Rust 项目

以下是一些不属于任何给定类别的项目。希望你能在这个“东西”集合中找到一些很棒的东西。 :)

伺服

Servo是一个用 Rust 编写的 Web 引擎原型。这是 Mozilla 致力于创建一个新的开源浏览器引擎的结果。 2020 年,Servo 从 Mozilla 转移到由 Linux 基金会托管。

由于 Rust 的内存安全保证可以减少漏洞的数量,Servo 应该比用 C++ 编写的浏览器更安全。

开关柜

swc是一个超快的 JavaScript/TypeScript 编译器。与 Babel 相比,它经过基准测试将编译速度提高了至少 18 倍。

荷叶边

想要运行 Adobe 最近禁用支持的所有酷炫 Flash 游戏吗?您可以使用Ruffle,这是一个用 Rust 编写的 Flash 播放器模拟器。

您可以在ruffle.rs上试用。

疯子

Lunatic是一个实验平台,它使用 WASM 实例作为参与者来构建执行。它深受Erlang的启发。

它应该将 WASM 和 Erlang 的优点结合起来,使您能够构建基于 actor 的系统,这些系统既容错又快速。

星舰

Starship是一款快速、可定制的智能提示,适合那些想要让外壳更酷的人。

美利搜索

MeiliSearch是一款功能强大、速度快、易于使用且可自定义的搜索引擎,它还具有容错性。现在有很多形容词!您可以为自己的项目设置它,而不是自定义且性能可能更差的解决方案。

有什么要补充的吗?

如您所见,生态系统是广阔的,有很多值得探索的地方。我当然无法涵盖所有内容。如果您知道一个值得参加的项目,请不要害怕告诉我们!

如果您想了解有关 Rust 的更多信息,我建议您访问我们博客的Rust 部分。玩得开心!