Rust Web框架列表

banq發表於2018-10-07

由於Rust生態系統還處於早期階段,因此框架有很多選擇。每個人都有自己的優點和缺點,沒有明顯的贏家。

Rocket
Rocket是一個十幾歲的框架 - 比其他許多框架更發達,但仍然不太成熟。它的特殊功能是透過宏來註釋請求處理函式,這個宏包括路由、引數和所需的資料,例如有效的反序列化形式,以及定義一種依賴注入。此外,文件非常好,開發活躍,並且與Actix一起,這是最常用的框架之一,因此可以從發展的社群知識中受益。火箭需要Rust的nightly以上版本。

Actix-web
Actix-web是一個基於Actix構建的框架,Actix是Rust的一個actor系統。它雖然成立時間沒有Rocket那麼長,但已經獲得了另一個社群的最愛。獨特的actor方法意味著單獨的元件(如資料庫訪問和後臺任務)都被實現為非同步actor,它們透過訊息傳遞相互通訊。Actix-web可能因出現在TechEmpower Web框架基準測試的排名頂端而聞名。Actix-web正在積極開發中,並且具有相當全面的文件。

Gotham
Gotham是一個非同步的Web框架,它與Rocket一樣時間長,但在2018年由於原始開發人員離開而不太活躍。我喜歡它簡單明瞭的方法,但對於某些常見任務來說它可能被認為有點冗長,並且最近在功能方面落後於更受歡迎的框架。

Tower-web
Tower-web是另一個平易近人的框架,旨在提供所有標準功能。它基於Tower:一個網路客戶端/伺服器元件庫,這意味著它最終應該獲得“batteries included”狀態。它也是由Rust最流行的非同步執行時庫Tokio的核心貢獻者之一開發的,這似乎是一個優點。像火箭一樣,Tower-web使用宏來減少樣板,但不需要Rust nightly 。由於它是新的,它仍然缺少功能和文件的方式,但正在積極開發。

Warp
Warp是一個具有獨特可組合性角度的框架,允許將可重複使用的“過濾器”連結在一起,這些過濾器可用於引數提取或包括所需應用程式狀態,這樣可以構建路由和請求處理程式。它在文件方面也很新穎,但在積極開發中。其開發人員和Tower-web的開發人員彼此都比較瞭解,並且可能在未來將Warp和Tower-web合併為單個框架。

Rouille
Rouille是一個同步微框架,它提供了Web框架的構建塊,其餘部分留給你。它既小又簡單,並沒有太多文件,但似乎正在積極開發中。

SHIO
Shio是一個非同步微框架,與Rouille有許多共同之處。它似乎沒有得到很多積極的開發,並且沒有很多文件的方式,儘管它確實有一些例子。

Nickel
Nickel是一個受Express JavaScript框架啟發的輕量級框架。它是第一個出現在Rust中的框架之一,但仍然看到了一些維護,但似乎沒有積極開發。它的文件很稀疏。

Rustful
Rustful是另一個微框架。它似乎沒有看到太多積極的開發,但我把它包括在這裡,以防它看起來像你在用的東西。

Yew (前端)
受Elm和React啟發的前端框架啟發,Yew利用Rust的能力編譯到WebAssembly。似乎它與JavaScript有良好的互操作性,並且已經足夠成熟可使用。它沒有很多文件,但確實有很多例子,並且正在積極開發中。

Diesel(ORM)
Diesel是Rust的事實上的ORM解決方案。它支援遷移,模式生成,並且具有構建DSL的良好查詢。我在過去使用MySQL時遇到了問題,看起來像Postgres是它受歡迎的資料庫(足夠公平),但是開發是活躍的。

[該貼被banq於2018-10-07 17:16修改過]

相關文章