Crate json_lines
source ·Expand description
§json-lines
json-lines is a #![no_std]
+ serde compatible message library implementing the
JSON Lines format.
§High-level overview
The crate provides a Rust-language implementation of JSON Lines (JSONL), also known as Newline-Delimited JSON (NDJSON).
The wikipedia page JSON Streaming and jsonlines.org are good resources describing the format.
This crate endeavors to have a similar API to the postcard crate. This way, Rust code can easily switch between JSONL and postcard formats depending on requirements. JSONL is “self-describing” but less efficient, whereas postcard is very compact but requires an out-of-band knowledge of message structure.
The crate contains a #![no_std]
implementation for use in, e.g. embedded
contexts. The std
feature is enabled by defaults and provides things such as
the Error enum implements the std::error::Error Trait.
The codec
feature enables crate::codec::JsonLinesCodec, which provides
an implementation of tokio_util::codec::Decoder and
tokio_util::codec::Encoder.
§License
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 the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Modules§
- An accumulator used to collect chunked newline-separated data and deserialize it.
- Provides implementations to use tokio_util::codec
Enums§
- This is the error type used by json-lines
Functions§
- Deserialize a message of type
T
from a byte slice. - Serialize a
T
to the given slice. - Serialize a
T
to the given slice. The terminating newline is included in the output buffer.
Type Aliases§
- This is the result type used by json-lines