3个版本 (破坏性)
0.3.0 | 2023年8月15日 |
---|---|
0.2.0 | 2023年6月9日 |
0.1.0 | 2023年6月6日 |
#1340 在 HTTP服务器
每月 下载 24 次
38KB
664 行
Rust HTTP1.1 服务器
一个符合HTTP协议1.1版本的库,根据RFC 9112和其他相关文档编写,使用Rust编写,无任何依赖。
最初这个库打算是一个运行HTTP服务器的可执行文件,但结果发现实现HTTP库更容易,然后在自己的可执行文件中使用它。
变更日志
更多信息请查看变更日志
lib.rs
:
注意:该库仍处于早期Alpha/Beta阶段
HTTP/1.1协议的轻量级服务器库
该crate的目标是创建一个易于使用且在拦截传入连接时快速的库
快速入门
// Library imports
use oak_http_server::{Server, Status};
fn main() {
// Save server hostname and port as variables
let hostname = "localhost";
let port: u16 = 2300;
// Create a new HTTP server instance (must be mutable since appending handlers to the Server struct modifies its fields)
let mut server = Server::new(hostname, port);
// The following path handler responds to each response to the "/ping" path with "Pong!"
server.on("/ping", |_request, response| response.send("Pong!"));
// The following path handler responds only to GET requests on the "\headers" path
// and returns a list of the headers supplied in the corresponding HTTP request
server.on_get("/headers", |request, response| {
response.send(format!(
"Your browser sent the following headers with the request:\n{}",
request
.headers
.iter()
.map(|(name, value)| format!("{}: {}\n", name, value))
.collect::<String>(),
))
});
// Start the HTTP server. The provided closure/callback function will be called
// when a connection listener has been successfully established.
// Once this function is run, the server will begin listening to incoming HTTP requests
# #[cfg(not)]
server.start(|| {
println!("Successfully initiated server");
});
}