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 部分。玩得開心!