#server #http #networking #web-framework

micro_http_server

一个非常简单的 HTTP 服务器,没有使用 Future 或其他复杂的东西

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 服务器

MIT 许可证

17KB
167

µHTTP 服务器

µHTTP 服务器是一个非常小的 Rust HTTP 服务器实现,无需复杂的 Future 等功能。

动机

对于各种小型项目,我通常需要一个微型的 HTTP 服务器,仅用于响应一些非常小的 API 类型的请求。由于 Rust 可用的所有 Web 框架都严重缺乏文档,除了少数小型的“入门”示例,我转向了看似低级的框架,如 hyper,它也严重缺乏文档和示例;因此,我创建了 µHTTP,它具备了我需要的所有功能。

更新日志

功能

  • 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