Expand description
Streaming JSON conversion. Streaming JSON parsing for HEDL
This module provides memory-efficient streaming parsers for processing large JSON files without loading the entire document into memory.
§Features
- Incremental Parsing: Process JSON objects as they arrive
- JSONL Support: Parse newline-delimited JSON (JSON Lines)
- Memory Bounded: Configurable memory limits for safe streaming
- Iterator-Based: Ergonomic Rust iterator interface
§Examples
§Streaming JSON Array
use hedl_json::streaming::{JsonArrayStreamer, StreamConfig};
use std::io::Cursor;
let json = r#"[
{"id": "1", "name": "Alice"},
{"id": "2", "name": "Bob"}
]"#;
let reader = Cursor::new(json.as_bytes());
let config = StreamConfig::default();
let streamer = JsonArrayStreamer::new(reader, config).unwrap();
for result in streamer {
let doc = result.unwrap();
println!("Parsed document: {:?}", doc);
}§JSONL Streaming
use hedl_json::streaming::{JsonLinesStreamer, StreamConfig};
use std::io::Cursor;
let jsonl = r#"{"id": "1", "name": "Alice"}
{"id": "2", "name": "Bob"}
{"id": "3", "name": "Charlie"}"#;
let reader = Cursor::new(jsonl.as_bytes());
let config = StreamConfig::default();
let streamer = JsonLinesStreamer::new(reader, config);
for result in streamer {
let doc = result.unwrap();
println!("Parsed document: {:?}", doc);
}Structs§
- Json
Array Streamer - Streaming parser for JSON arrays
- Json
Lines Streamer - Streaming parser for JSONL (JSON Lines) format
- Json
Lines Writer - Streaming writer for JSONL format
- Stream
Config - Configuration for streaming JSON parsing
- Stream
Config Builder - Builder for
StreamConfig
Enums§
- Stream
Error - Errors that can occur during streaming JSON parsing