2 个版本
0.1.1 | 2022 年 9 月 3 日 |
---|---|
0.1.0 | 2022 年 7 月 13 日 |
#517 in HTTP 服务器
35KB
776 行
示例
use std::collections::HashMap;
use weber::{
HttpServer,
parser::{
Content,
ContentType
}
};
fn main() {
// Building a server that runs in 4 threads
let mut server = HttpServer::new(4);
// Creating map with default values
let mut default = HashMap::new();
default.insert("foo".to_string(), "gg".to_string());
default.insert("bar".to_string(), "hi".to_string());
server.add_page("/", move | request | {
let vals = request.path.values.as_ref().unwrap_or(&default);
// Getting values from url
let foo = match vals.get("foo") {
None => "Variable not defined",
Some(foo) => foo
};
let bar = match vals.get("bar") {
None => "Variable not defined",
Some(bar) => bar
};
let html = format!(
"<!DOCTYPE html>
<html>
<head>
<h1>Hello world!</h1>
</head>
<body>
<h3>Foo: {}</h3>
<h3>Bar: {}</h3>
<a href=\"/:foo=bar,bar=foo\">Some page</a>
</body>
</html>
", foo, bar); // Format html using received values
Content::new(html.as_bytes().to_vec(), ContentType::Html, 200)
});
server.run("127.0.0.1:7080"); // Run server on localhost:7080
}
功能
此软件包包含以下内容
- 请求 / 响应 构建器和解析器
还有 PathParser,但没有为其提供构建器
- 多线程 HTTP 服务器
- 以及更多功能
PS
希望我能引起你的兴趣 :)
依赖项
~1.5MB
~23K SLoC