Expand description
Provides traits FromStream, Decoder, ToStream and Encoder, which are
streaming/async analogues of serde’s Deserialize, Deserializer, Serialize,
and Serializer.
The structure and contents of this crate are based on serde but not compatible with it
(primarily because serde doesn’t support async).
Most of the code which makes up destream is copied directly from serde
with minimal modifications.
serde is dual-licensed under the MIT and Apache-2.0 licenses, which are available at
https://github.com/serde-rs/serde/blob/master/LICENSE-MIT
and
https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE
respectively.
Important differences between destream and serde:
destreamsupports decoding from and encoding to afutures::Stream(obviously).destreamdoes not (yet) support thederivemacro, so you can’t deriveFromStreamorToStream, and there is no built-in functionality for decoding/encoding a givenstruct.Decoderassumes the static lifetime and only supports owned types, butEncoderuses a specific lifetime'en. This is the opposite ofserde.
destream itself does not implement support for any specific serialization format.
destream_json provides support for streaming JSON.
Re-exports§
pub use de::ArrayAccess;pub use de::Decoder;pub use de::FromStream;pub use de::IgnoredAny;pub use de::MapAccess;pub use de::SeqAccess;pub use de::Visitor;pub use en::EncodeMap;pub use en::EncodeSeq;pub use en::EncodeTuple;pub use en::Encoder;pub use en::IntoStream;pub use en::MapStream;pub use en::SeqStream;pub use en::ToStream;