3个版本 (破坏性)

0.3.0 2023年8月15日
0.2.0 2023年6月9日
0.1.0 2023年6月6日

#1340HTTP服务器

每月 下载 24

MIT 许可证

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");
   });
}

无运行时依赖