Crate json_lines

Source
Expand description

§json-lines

Crates.io Documentation Crate License Dependency status build

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 default and provides things such as the Error enum implements the std::error::Error Trait.

The codec feature enables compilation of crate::codec::JsonLinesCodec, which provides an implementation of tokio_util::codec::Decoder and tokio_util::codec::Encoder.

§License

Licensed under either of

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§

accumulator
An accumulator used to collect chunked newline-separated data and deserialize it.
codeccodec
Provides implementations to use tokio_util::codec

Enums§

Error
This is the error type used by json-lines

Functions§

from_bytes
Deserialize a message of type T from a byte slice.
to_slice
Serialize a T to the given slice.
to_slice_newline
Serialize a T to the given slice. The terminating newline is included in the output buffer.

Type Aliases§

Result
This is the result type used by json-lines