actix-bincode

Crates.ioactix-bincode
lib.rsactix-bincode
version0.3.1
sourcesrc
created_at2022-11-11 01:23:45.07423
updated_at2024-08-19 15:32:36.085756
descriptionBincode extractor for Actix Web
homepage
repositoryhttps://github.com/aalhitennf/actix-bincode
max_upload_size
id712559
size18,732
(aalhitennf)

documentation

README

actix-bincode

crates.io dependency status

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

Commit count: 31

cargo fmt