9 releases
0.3.1 | Aug 19, 2024 |
---|---|
0.3.0 | Jul 3, 2024 |
0.2.4 | Feb 15, 2024 |
0.2.3 | Sep 18, 2023 |
0.1.1 | Nov 11, 2022 |
#539 in Encoding
14KB
204 lines
actix-bincode
Bincode payload extractor for Actix Web
NOTICE: This crate uses Bincode version 2.0.0-rc.3
Example
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 example
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)
}
Configuring bincode
Extractor tries to read configuration from actix app data, and defaults to standard if none present:
let config = bincode::config::standard().with_big_endian();
let app = App::new().app_data(config);
License
This project is licensed under
- MIT license (LICENSE or https://opensource.org/licenses/MIT)
Dependencies
~15–25MB
~448K SLoC