#streaming-json #json-event #parser

json-event-parser

A JSON event parser and serializer

8 releases

0.2.3 Feb 6, 2026
0.2.2 Mar 8, 2025
0.2.1 Feb 23, 2025
0.2.0 Mar 23, 2024
0.1.0 May 30, 2021

#174 in Encoding

Download history 2301/week @ 2025-12-28 4989/week @ 2026-01-04 2567/week @ 2026-01-11 3216/week @ 2026-01-18 4002/week @ 2026-01-25 4353/week @ 2026-02-01 4247/week @ 2026-02-08 4691/week @ 2026-02-15 4572/week @ 2026-02-22 5536/week @ 2026-03-01 3718/week @ 2026-03-08 4234/week @ 2026-03-15 4891/week @ 2026-03-22 5580/week @ 2026-03-29 5913/week @ 2026-04-05 6293/week @ 2026-04-12

23,083 downloads per month
Used in 179 crates (9 directly)

MIT/Apache

68KB
1.5K SLoC

JSON streaming parser and serializer

actions status Latest Version Released API docs

JSON event parser is a simple streaming JSON parser and serializer implementation in Rust.

It does not aims to be the fastest JSON parser possible but to be a simple implementation allowing to parse larger than memory files.

If you want fast and battle-tested code you might prefer to use json, serde_json or simd-json.

Parser example:

use json_event_parser::{ReaderJsonParser, JsonEvent};

let json = b"{\"foo\": 1}";
let mut reader = ReaderJsonParser::new(json.as_slice());
assert_eq!(reader.parse_next()?, JsonEvent::StartObject);
assert_eq!(reader.parse_next()?, JsonEvent::ObjectKey("foo".into()));
assert_eq!(reader.parse_next()?, JsonEvent::Number("1".into()));
assert_eq!(reader.parse_next()?, JsonEvent::EndObject);
assert_eq!(reader.parse_next()?, JsonEvent::Eof);
# std::io::Result::Ok(())

Serializer example:

use json_event_parser::{WriterJsonSerializer, JsonEvent};

let mut writer = WriterJsonSerializer::new(Vec::new());
writer.write_event(JsonEvent::StartObject) ?;
writer.write_event(JsonEvent::ObjectKey("foo".into())) ?;
writer.write_event(JsonEvent::Number("1".into())) ?;
writer.write_event(JsonEvent::EndObject) ?;

assert_eq!(writer.finish()?.as_slice(), b"{\"foo\":1}");
# std::io::Result::Ok(())

License

This project is 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 json-event-parser by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~0–640KB