#actix-web #msgpack #web #protocols #actix

actix-msgpack

Actix Web 的 Msgpack 负载数据提取器

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 编码

Download history 1/week @ 2024-04-21 40/week @ 2024-04-28 13/week @ 2024-05-05 3/week @ 2024-05-12 11/week @ 2024-05-19 2/week @ 2024-05-26 18/week @ 2024-06-02 25/week @ 2024-06-09 19/week @ 2024-06-16 151/week @ 2024-06-23 27/week @ 2024-06-30 16/week @ 2024-07-07 1/week @ 2024-07-14 8/week @ 2024-07-21 47/week @ 2024-07-28

73 每月下载量

MIT 许可证

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 许可证 (LICENSEhttps://opensource.org/licenses/MIT)

依赖项

~15–25MB
~455K SLoC