Skip to main content

Crate asyncjsonstream

Crate asyncjsonstream 

Source
Expand description

Async JSON stream reader for selective parsing of large payloads.

This crate exposes the same token-based API used in Extract’s connectors, enabling efficient streaming reads without deserializing full documents.

§Quick start

use asyncjsonstream::AsyncJsonStreamReader;
use std::io::Cursor;

#[tokio::main]
async fn main() -> Result<(), asyncjsonstream::AsyncJsonStreamReaderError> {
    let data = r#"{"status":"success","results":[{"id":1},{"id":2}]}"#;
    let mut reader = AsyncJsonStreamReader::new(Cursor::new(data.as_bytes().to_vec()));

    while let Some(key) = reader.next_object_entry().await? {
        match key.as_str() {
            "status" => {
                let status = reader.read_string().await?;
                println!("status={status}");
            }
            "results" => {
                while reader.start_array_item().await? {
                    let obj = reader.deserialize_object().await?;
                    println!("id={}", obj["id"]);
                }
            }
            _ => {}
        }
    }

    Ok(())
}

Structs§

AsyncJsonStreamReader
The main async JSON stream reader for selective parsing.

Enums§

AsyncJsonStreamReaderError
Error types that can occur during streaming JSON parsing.
JsonToken
Token types emitted by next_token.