2022年可選擇的三個(gè)Rust Web框架:actix-web、warp和axum。
- actix-web:4.0.0-rc.35,134,720Actix Web 是一個(gè)功能強(qiáng)大、實(shí)用且速度極快的 Rust Web 框架
- warp:0.3.24,114,095以翹曲的速度服務(wù)于網(wǎng)絡(luò)
- axum:專注于人體工程學(xué)和模塊化的 Web 框架(由 tokio 團(tuán)隊(duì)提供)
比較:
- axum有最干凈的 API,它建立在hyper之上,它(當(dāng)然)是 Rust 中經(jīng)過測(cè)試最可靠的 HTTP 堆棧,并且因?yàn)樗怯?tokio 團(tuán)隊(duì)開發(fā)的。但它的年輕可能會(huì)讓一些人感到不舒服。
- 對(duì)于較大的項(xiàng)目,我認(rèn)為這actix-web是無可爭(zhēng)議的贏家。這就是為什么它是我選擇Bloom的原因。
- 對(duì)于較小的項(xiàng)目(最多 50 條路由)warp,盡管它有原始的 API,但它非常好,因?yàn)樗彩墙⒃谄渲系膆yper,因此受益于它的可靠性和性能。
詳細(xì)比較:
- JSON反序列化:所有框架都使用泛型來提供簡(jiǎn)單的 JSON 反序列化。話雖如此,我發(fā)現(xiàn)兩者都axum可以actix-web更直接地與他們的助手一起使用來自動(dòng)提取類型化的正文有效負(fù)載。
- 路由:axum是明顯的贏家,緊隨其后的是actix-web,然后是warp有利于組合的功能性 API,這與我們通常對(duì) Web 框架的期望相去甚遠(yuǎn)。
- 中間件:warp, 毫無疑問...
- 狀態(tài):在構(gòu)建 Web 服務(wù)時(shí),您需要共享一些變量,例如數(shù)據(jù)庫連接池或一些用于外部服務(wù)的客戶端。所有框架的人機(jī)工程學(xué)都非常相似