#actix-web #bincode #web #actix

actix-bincode

Actix Web的Bincode提取器

9个版本

新版本 0.3.1 2024年8月19日
0.3.0 2024年7月3日
0.2.4 2024年2月15日
0.2.3 2023年9月18日
0.1.1 2022年11月11日

#543 in 编码

自定义许可

14KB
204

actix-bincode

crates.io dependency status

Bincode 是Actix Web的负载提取器

注意:此crate使用Bincode版本2.0.0-rc.3

示例

use actix_bincode::Bincode;
use bincode::{Decode, Encode};

#[derive(Decode, Encode)]
pub struct Object {
    pub num: i32,
    pub text: String,
}

async fn index(object: Bincode<Object>) -> HttpResponse {
    println!("num: {}", object.num);
    println!("text: {}", object.text);
    let config = bincode::config::standard();
    let body = bincode::encode_to_vec(object.into_inner(), config).unwrap();
    HttpResponse::Ok().body(body)
}

Serde示例

use actix_bincode::BincodeSerde;
use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize)]
pub struct Object {
    pub num: i32,
    pub text: String,
}

async fn index(object: BincodeSerde<Object>) -> HttpResponse {
    println!("num: {}", object.num);
    println!("text: {}", object.text);
    let config = bincode::config::standard();
    let body = bincode::serde::encode_to_vec(object.into_inner(), config).unwrap();
    HttpResponse::Ok().body(body)
}

配置bincode

提取器尝试从actix应用数据中读取配置,如果没有提供则默认为标准配置

let config = bincode::config::standard().with_big_endian();

let app = App::new().app_data(config);

许可

本项目遵循

依赖

~15–25MB
~459K SLoC