2 releases
0.1.1 | Nov 21, 2023 |
---|---|
0.1.0 | Nov 20, 2023 |
#1047 in Encoding
1,005 downloads per month
16KB
221 lines
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.
Dependencies
~1–7MB
~58K SLoC