#serde-json #json #serde #framing

no-std json-lines

A no_std + serde compatible message library implementing JSON Lines

3 releases

0.1.2 Jan 4, 2025
0.1.1 Nov 21, 2023
0.1.0 Nov 20, 2023

#310 in Encoding

Download history 128/week @ 2024-09-29 174/week @ 2024-10-06 165/week @ 2024-10-13 267/week @ 2024-10-20 327/week @ 2024-10-27 234/week @ 2024-11-03 209/week @ 2024-11-10 174/week @ 2024-11-17 118/week @ 2024-11-24 494/week @ 2024-12-01 535/week @ 2024-12-08 407/week @ 2024-12-15 727/week @ 2024-12-22 326/week @ 2024-12-29 570/week @ 2025-01-05 410/week @ 2025-01-12

2,091 downloads per month

MIT/Apache

16KB
221 lines

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.

Dependencies

~0.9–7.5MB
~55K SLoC