Salvo是一個簡單但功能強大的Rust網絡框架,允許您快速構建支持HTTP/1-3和Webocket/WebTransport協議的現代伺服器,即使您只擁有基本的Rust知識。該框架基於Hyper和Tokio構建,採用統一的處理器/中間件模型,配備無限可嵌套的、連鎖的呼叫路由系統(可以明確劃分公共和私人路由組),還內置多部分表單/文件上傳、數據提取功能,可以自動生成OpenAPI文檔,支持ACME協議的SSL證書配置,並提供用於快速構建項目框架的命令行工具(CLI)。使用Salvo,您可以快速原型和部署高性能、高安全性的後台,只需更少的模板代碼、更簡單的路由配置、更簡單的測試流程和API文檔管理。
在Rust生態系統中,Web框架總是「快速」和「簡單」,但真正圍繞其設計系統的框架並不多 工程結構、可維護性和類型安全.
Salvo 只是這樣的項目之一。
它不會嘗試用最少的代碼完成演示,而是明確針對一個問題:
如何在Rust中構建長期可維護、結構良好且可靠的Web服務?
另一個Rust網絡框架?
如果您接觸過Rust網絡生態系統,您可能已經見過這些問題:
- 路由、參數、驗證分散在各處
- 中間件堆疊後很難跟蹤執行順序
- 項目規模龐大,邏輯結構開始「崩潰」
- 資料庫和基礎設施強耦合且難以重複使用
Salvo並不是為了解決您是否可以編寫Web服務的問題而設計的。
它是為了回答一個更多的工程問題:
Web請求能否建模為清晰、可組合、類型安全的處理鏈?
一切都是可拆卸的,一切都可以組合
Salvo的核心抽象非常簡單:
- 請求處理的每一步都是一個任務
- 處理程式可以像函數一樣組合、嵌套和重複使用
這意味著:
- 路由收件箱控制器
- 中間件調試特殊機制
- 驗證/認證/日誌只是處理鏈中的一個環節
在Salvo中,你並不是「將邏輯塞進框架中」,
取而代之的是 構建顯式請求流.
強勢類型不是「優點」,而是基本前提
Salvo深入利用了Rust的類型系統:
- 路徑/查詢/主體都可以直接映射到結構
- 驗證邏輯可以在類型層完成
- 許多bug 被淘汰 編譯時
該體驗非常接近「強類型化數位化的後台版本」:
- 您正在描述一個 數據結構
- 該框架負責 約束和聯繫
這種方法更接近「工程工具」而不是「腳本工具」,而不是在運行時報告錯誤的Web框架。
中間件不是魔法,而是顯式結構
在許多框架中,中間件就像一團「看不見的霧」:
- 順序取決於記憶
- 行為取決於文檔
- 是猜測
Salvo有意避免這種設計。
Salvo中的中間件:
- 是正常的收件箱
- 有明確的組合位置
- 它可以對本地有效,而不是全球污染
這使得複雜的服務在結構上保持不變 可讀、可追溯和可重新配置.
Asmat只是基礎,而不是賣點
Salvo基於Tokio的Deliverc/await系統:
- 支持高並發I/O
- 零成本抽象
- 性能上限由Rust決定,而不是框架本身
但它並不把「性能」作為唯一的賣點。
與極端基準相比,Salvo更專注於:
當服務運行一年,代碼增加十倍時,還能被理解嗎?
Salvo適合什麼樣的項目?
從定位來看,Salvo更適合:
- 大中型Web API項目
- 微服務/內部服務
- 需要長期維護的項目
- 對結構、類型、安全有要求的團隊或個人
如果您只是想「快速構建界面」,這可能不是最不費力的選擇。
但如果你想 代碼本身就像設計文檔,Salvo非常方便。
更準確的類比
與其說薩爾沃是:
「另一個Rust Web框架」
最好說它更像是:
將Web服務視為可組合的、合理的數據處理管道
這也是它最有價值的地方。
Github:https://github.com/salvo-rs/salvo
管材: