13 releases (breaking)
0.9.0 | Feb 4, 2024 |
---|---|
0.8.0 | Dec 24, 2020 |
0.7.1 | Oct 31, 2020 |
0.6.1 | Mar 23, 2020 |
0.0.0 | Mar 14, 2017 |
#41 in Encoding
241,648 downloads per month
Used in 334 crates
(58 directly)
26KB
336 lines
Tokio Serialize / Deserialize
Utilities needed to easily implement a Tokio transport using serde for serialization and deserialization of frame values.
Usage
To use tokio-serde
, first add this to your Cargo.toml
:
[dependencies]
tokio-serde = "0.9"
Next, add this to your crate:
use tokio_serde::{Serializer, Deserializer, Framed};
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in iovec by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
This crate provides the utilities needed to easily implement a Tokio transport using serde for serialization and deserialization of frame values.
Introduction
This crate provides transport combinators that transform a stream of frames encoded as bytes into a stream of frame values. It is expected that the framing happens at another layer. One option is to use a length delimited framing transport.
The crate provides two traits that must be implemented: Serializer
and
Deserializer
. Implementations of these traits are then passed to
Framed
along with the upstream Stream
or
Sink
that handles the byte encoded frames.
By doing this, a transformation pipeline is built. For reading, it looks something like this:
tokio_serde::Framed
tokio_util::codec::FramedRead
tokio::net::TcpStream
The write half looks like:
tokio_serde::Framed
tokio_util::codec::FramedWrite
tokio::net::TcpStream
Examples
For an example, see how JSON support is implemented:
Dependencies
~0.4–1.4MB
~28K SLoC