5 个版本
使用旧的 Rust 2015
0.0.5 | 2022 年 4 月 15 日 |
---|---|
0.0.4 | 2022 年 4 月 15 日 |
0.0.3 | 2018 年 10 月 15 日 |
0.0.2 | 2018 年 7 月 14 日 |
0.0.1 | 2018 年 7 月 14 日 |
#455 in HTTP 服务器
17KB
167 行
µHTTP 服务器
µHTTP 服务器是一个非常小的 Rust HTTP 服务器实现,无需复杂的 Future 等功能。
动机
对于各种小型项目,我通常需要一个微型的 HTTP 服务器,仅用于响应一些非常小的 API 类型的请求。由于 Rust 可用的所有 Web 框架都严重缺乏文档,除了少数小型的“入门”示例,我转向了看似低级的框架,如 hyper,它也严重缺乏文档和示例;因此,我创建了 µHTTP,它具备了我需要的所有功能。
更新日志
- 0.0.5:支持关闭非阻塞模式,感谢 chili-b。
- 0.0.3:添加了对 OS X 的支持,感谢 SteamPoweredAnimal。
功能
- HTTP/1.0 GET 请求
- 自定义头部和响应
就这些。如果需要更多,请随意提交 Issue 或 PR。
使用方法
创建服务器就像这样简单
let server = MicroHTTP::new("127.0.0.1:3000")
.expect("Could not create server.");
现在您可以检查客户端是否已连接
let client = server.next_client().unwrap();
if client.is_some() {
// New connection
} else {
// No one talked to the server :(
}
要获取客户端的请求,请调用 request()
let request_str = client.request()
.expect("Client didn't request anything!);
要响应,使用 respond_ok
以返回 HTTP 200 或使用 respond
以返回更自定义的响应
client.respond_ok("I got your request".as_bytes());
...
client.respond("200 OK",
"Here is my custom response".as_bytes(),
vec!(
"Some-Header: Some Value",
"Some other Header: Some other Value"
));
示例 + 文档
- 在仓库内,在 examples 文件夹中,您可以找到一个简单的 echo 服务器示例。
- 由于所有内容都应该有文档,因此此 crate 使用
#![deny)]
编译,否则它将毫无用处。 - 如果您对文档有任何问题,请提交 Issue。
依赖
~88KB