8 个版本
0.1.2 | 2024年6月23日 |
---|---|
0.1.1 | 2023年12月24日 |
0.0.5 | 2023年12月23日 |
0.0.4 | 2023年9月16日 |
#1083 in 编码
73 每月下载量
20KB
433 行
actix-msgpack
Actix Web 的 Msgpack 负载数据提取器。
安装
cargo add actix-msgpack
文档
示例
use actix_msgpack::MsgPack;
use actix_web::{post, App, HttpResponse, HttpServer, Responder};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Data {
payload: String,
}
#[post("/")]
async fn index(data: MsgPack<Data>) -> impl Responder {
println!("payload: {}", data.payload);
HttpResponse::Ok().finish()
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new().service(index)
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
您可以设置自定义限制(默认为256kb)
use actix_msgpack::MsgPackConfig;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
let mut msgpack_config = MsgPackConfig::default();
msgpack_config.limit(1024); // 1kb
App::new().app_data(msgpack_config).service(index)
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
您可以使用响应者
use actix_msgpack::MsgPackResponseBuilder;
#[derive(Serialize)]
struct Data {
payload: bool,
}
#[post("/")]
async fn index() -> HttpResponse {
let payload = Data { payload: true };
HttpResponse::Ok().msgpack(payload)
}
许可证
本项目采用 MIT 许可证 (LICENSE 或 https://opensource.org/licenses/MIT)
依赖项
~15–25MB
~455K SLoC