至于HTTP服务器,可以使用warp板条箱。warp是一个建立在Rust的类型系统之上的HTTP服务器框架。
[dependencies] tokio = { version = "0.2", features = ["macros"] } warp = "0.2"让我们写个简单的"Hello,Chongchong"示例:
use warp::Filter; #[tokio::main] async fn main() { // GET /hello/Chongchong=> 200 OK with body "Hello, Chongchong!" let hello = warp::path!("hello" / String) .map(|name| format!("Hello, {}!", name)); warp::serve(hello) .run(([127, 0, 0, 1], 3030)) .await; }然后通过127.0.0.1:3030/hello/Chongchong,就可以提示Hello, Chongchong!。
对 warp应用可以使用其or模式构建多条Web路由:
let hello = warp::path!("hello" / String) .map(|name| format!("Hello, {}!", name)); let health = warp::path!(".within" / "health") .map(|| "OK"); let routes = hello.or(health);还可通过过滤器将其他数据类型注入到处理程序中:
let fact = { let facts = pfacts::make(); warp::any().map(move || facts.clone()) }; let fact_handler = warp::get() .and(warp::path("fact")) .and(fact.clone()) .and_then(give_fact);warp是功能强大的HTTP服务器,可以跨生产级Web应用程序所需的所有内容工作。