7个版本
0.1.6 | 2023年11月3日 |
---|---|
0.1.5 | 2023年11月1日 |
0.1.4 | 2023年10月30日 |
4 在 #serves 类别中
每月下载量 47 次
18KB
213 行
crane
一个简单且快速的Web服务器 :)
入门指南
为了构建Web服务器,您需要将 crane-webserver
作为依赖项添加到Rust项目中,方法如下:
cargo add crane-webserver
示例
创建一个响应消息的HTTP服务器。
use crane_webserver::*;
fn main() {
let server = WebServer::bind("127.0.0.1:8888", |path, query| {
match path.as_str() {
"/" => default_route_fn(query),
_ => ResponseBuilder::new().build(),
}
}).unwrap()
server.start();
}
fn root() -> Response {
ResponseBuilder::new()
.status(HttpStatus::OK)
.header("Content-Type", "text/plain")
.body("Hello, World!")
.build()
}
$ curl localhost:8888/
Hello, World!
lib.rs
:
一个简单且快速的Web服务器。
crane-webserver
提供了您构建Web服务器所需的所有工具。
它是如何工作的?
在核心上,crane-webserver
包含一个 WebServer
。这个 WebServer
是一个“构建器”,它接受一个闭包,该闭包负责将不同的函数映射到不同的路径,然后调用 start
函数来启动Web服务器。
示例
一个基本的Web服务器,它提供“Hello, World!”
use crane_webserver::*;
fn main() {
let server = WebServer::bind("127.0.0.1:8888", |path, _query| {
match path.as_str() {
"/" => root(),
_ => ResponseBuilder::new().build()
}
}).unwrap();
server.start();
}
fn root() -> Response {
ResponseBuilder::new()
.status(HttpStatus::OK)
.header("Content-Type", "text/plain")
.body("Hello, World!")
.build()
}
运行程序后,打开您的Web浏览器,转到 https://127.0.0.1:8888/
,查看服务器的工作情况!
依赖项
~1.5MB
~48K SLoC