#networking #bincode #futures

tokio-bincode

Bincode based tokio-codec adapter

1 unstable release

0.1.0 Apr 6, 2019

#16 in #bincode

MIT license

8KB
130 lines

tokio-bincode

Build Status

Bincode based tokio-codec adapter.

Usage

First, add this to your Cargo.toml:

[dependencies]
tokio-bincode = "0.1"

Then you can use it like so:

#[derive(Serialize, Deserialize)]
struct MyProtocol;

// Create the codec based on your custom protocol
let codec = BinCodec::<MyProtocol>::new();

// Frame the transport with the codec to produce a stream/sink
let (sink, stream) = Framed::new(transport, codec).split();

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in tokio-bincode by you, shall be licensed as MIT, without any additional terms or conditions.


lib.rs:

Tokio codec for use with bincode

This crate provides a bincode based codec that can be used with tokio's Framed, FramedRead, and FramedWrite.

Example

# use futures::{Stream, Sink};
# use tokio::io::{AsyncRead, AsyncWrite};
# use tokio_codec::Framed;
# use serde::{Serialize, Deserialize};
# use tokio_bincode::BinCodec;
# use serde_derive::{Serialize, Deserialize};
# fn sd<'a>(transport: impl AsyncRead + AsyncWrite) {
#[derive(Serialize, Deserialize)]
struct MyProtocol;

// Create the codec based on your custom protocol
let codec = BinCodec::<MyProtocol>::new();

// Frame the transport with the codec to produce a stream/sink
let (sink, stream) = Framed::new(transport, codec).split();
# }

Dependencies

~1MB
~22K SLoC