Rust Web框架列表
由於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修改過]
相關文章
- Tower-web—Rust的快速、無樣板Web框架WebRust框架
- [Rust]使用Rocket框架搭建簡單Web服務Rust框架Web
- 2022年選擇哪個Rust Web框架 - kerkourRustWeb框架
- rust-unofficial/awesome-rust:Rust開原始碼和資源的精選列表。Rust原始碼
- 嵌入式Rust工具庫包列表 - apollRust
- actix/actix-web:Actix Web 是一個功能強大、實用且速度極快的 Rust 網路框架。WebRust框架
- web ui 框架WebUI框架
- 前端web框架前端Web框架
- golang web框架,golang版本laravel 框架GolangWeb框架Laravel
- Java Web UI框架JavaWebUI框架
- Web框架之TornadoWeb框架
- actix/actix:Rust語言的Actor框架Rust框架
- Rust非同步框架的效能評估Rust非同步框架
- 使用Rust和Elixir實現高效的下發好友列表Rust
- Rust使用Sauron實現Web介面互動RustWeb
- web技術分享| 虛擬列表實現Web
- 純手寫web框架Web框架
- Web測試框架SeleniumBaseWeb框架
- Python之Web框架DjangoPythonWeb框架Django
- python web框架的整理PythonWeb框架
- wsgiref模組、web框架、django框架簡介Web框架Django
- [譯] Rust 開發完整的 Web 應用程式RustWeb
- 解決 Rust WebAssembly 啟動 Web 程式報錯RustWeb
- Python、JavaScript和Rust的Web效能比較 - AlexPythonJavaScriptRustWeb
- 使用Rust和WebAssembly構建Web應用程式RustWeb
- go-zero之web框架GoWeb框架
- Web開發框架推導Web框架
- Python主流Web框架之TornadoPythonWeb框架
- go gin框架和springboot框架WEB介面效能對比Go框架Spring BootWeb
- flutter_web 實戰之文章列表與詳情FlutterWeb
- Python全棧Web(Django框架、模板)Python全棧WebDjango框架
- 簡說Python Web非同步框架PythonWeb非同步框架
- golang web框架——gin使用教程(一)GolangWeb框架
- Web前端開發框架有哪些?Web前端框架
- 快速web開發框架——learun frameworkWeb框架Framework
- 淺析Java Web框架技術JavaWeb框架
- 搞懂 XML 解析,徒手造 WEB 框架XMLWeb框架
- ThinkPHP中文WEB框架歡迎你PHPWeb框架