繁中

Salvo:「可組合工程結構」的Rust網絡框架

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
管材:

返回頂端