json-lines

Crates.iojson-lines
lib.rsjson-lines
version0.1.1
sourcesrc
created_at2023-11-20 14:48:53.106746
updated_at2023-11-21 05:36:51.016127
descriptionA no_std + serde compatible message library implementing JSON Lines
homepage
repositoryhttps://github.com/strawlab/json-lines
max_upload_size
id1042289
size31,962
Andrew Straw (astraw)

documentation

README

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 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

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.

Commit count: 6

cargo fmt