Rust 值得關(guān)注的三個(gè) Web 框架
大家好,我是漁夫。
今天主題,值得關(guān)注 Rust 的web框架有那些。
近年來(lái),Rust 語(yǔ)言在編程界里嶄露頭角,為多個(gè)領(lǐng)域提供了出色的解決方案,不管你是身為客戶端程序員,還是后端,甚至底層開發(fā),內(nèi)核開發(fā)等人員都是對(duì) Rust 產(chǎn)生濃厚興趣。
到目前為此,Rust 生態(tài)中涌現(xiàn)出多個(gè)流行的Web框架,其中三個(gè)備受矚目:
1.Axum
Axum框架 ,是由 Rust 社區(qū)的異步事實(shí)標(biāo)準(zhǔn) Tokio 團(tuán)隊(duì)開發(fā),以高性能和強(qiáng)大的異步支持著稱。隨著來(lái)自知名團(tuán)隊(duì)的背書,Axum 框架的發(fā)展迅速,備受開發(fā)者青睞。
高級(jí)特性:
- 使用無(wú)宏 API 將請(qǐng)求路由到處理程序
- 使用提取器以聲明方式解析請(qǐng)求
- 簡(jiǎn)單且可預(yù)測(cè)的錯(cuò)誤處理模型
- 使用最少的樣板生成響應(yīng)
- 充分利用中間件、服務(wù)和實(shí)用程序的生態(tài)系統(tǒng) tower,tower-http
Github 地址:https://github.com/tokio-rs/axum
2.Actix Web
Actix Web 是 Rust 中一款歷史悠久且備受歡迎的Web框架之一,作為一項(xiàng)優(yōu)秀的開源項(xiàng)目,經(jīng)過(guò)多次迭代,并已經(jīng)達(dá)到了主要版本了。這樣 Actix Web 可以確保不會(huì)引入破壞性的更改。
Actix Web 實(shí)現(xiàn)了自己的 Service 特性,與 Tower 的Service 基本相同但不兼容,也就是說(shuō)在Tower 生態(tài)系統(tǒng)中大多數(shù)可用的中間件在 Actix中無(wú)法使用。在Actix Web中執(zhí)行一些特殊任務(wù)時(shí),可能需要涉及到框架中的Actor模型,這可能帶來(lái)一些意外的問題。
多提一嘴,Actix Web 社區(qū)非常強(qiáng)大,框架支持 HTTP/2和WebSocket,提供了用于Web框架中最常見任務(wù)的 crate s和指南,并且提供強(qiáng)大文檔,而且速度非??臁ctix Web備受歡迎,是因?yàn)樗峁┝朔€(wěn)定版本,并在解決挑戰(zhàn)時(shí)提供了最佳選擇。
官網(wǎng)地址:https://actix.rs/docs/
3.Warp
Warp 是一個(gè)強(qiáng)大的 Rust Web 框架,提供了許多開箱即用的功能,包括路徑路由和參數(shù)提取、標(biāo)頭要求和提取、查詢字符串反序列化、JSON和表單正文處理、多部分表單數(shù)據(jù)、靜態(tài)文件和目錄服務(wù)、網(wǎng)絡(luò)套接字管理、訪問日志記錄、Gzip、Deflate和Brotli壓縮,以及服務(wù)器發(fā)送事件(SSE)等。
由于 Warp建立在 hyper 和 Tokio 這兩個(gè)異步Rust運(yùn)行時(shí)之上,因此它自動(dòng)提供了HTTP/1和HTTP/2支持、異步功能以及被認(rèn)為是最快之一的HTTP實(shí)現(xiàn)。Warp經(jīng)過(guò)充分的測(cè)試,確保其正確性和穩(wěn)定性,使其成為構(gòu)建高性能、可靠的Web應(yīng)用程序的理想選擇。
開源依賴庫(kù):
- Tokio
- NuShell
- Fig Completion Specs
- Warp Server Framework
- Alacritty
- Hyper HTTP library
- FontKit
- Core-foundation
- Smol
Github 地址:https://github.com/warpdotdev/Warp