Crate fionn_gron

Crate fionn_gron 

Source
Expand description

§fionn-gron - SIMD-accelerated gron implementation

This module provides a high-performance implementation of the gron transformation, which converts JSON into greppable, line-oriented output format.

§Features

  • SIMD-accelerated parsing: Uses fionn’s tape for efficient JSON parsing
  • Efficient path building: Stack-based incremental path construction
  • Extended path syntax: Supports bracket notation for special field names
  • Ungron support: Reconstruct JSON from gron output
  • JSONL support: Process newline-delimited JSON files
  • Query mode: Filter output with JSONPath-like queries

§Example

use fionn::gron::{gron, GronOptions};

let json = r#"{"name": "Alice", "age": 30}"#;
let output = gron(json, &GronOptions::default())?;
// Output:
// json = {};
// json.name = "Alice";
// json.age = 30;

§JSONL Processing

use fionn::gron::{gron_jsonl, GronJsonlOptions};

let jsonl = b"{\"a\":1}\n{\"b\":2}";
let output = gron_jsonl(jsonl, &GronJsonlOptions::default())?;
// json[0].a = 1;
// json[1].b = 2;

§Query Mode

use fionn::gron::{gron_query, Query, GronOptions};

let json = r#"{"users": [{"name": "Alice"}, {"name": "Bob"}]}"#;
let query = Query::parse(".users[*].name")?;
let output = gron_query(json, &query, &GronOptions::default())?;
// json.users[0].name = "Alice";
// json.users[1].name = "Bob";

Structs§

GronJsonlOptions
Options for JSONL processing.
GronLine
A single gron output line with zero-copy semantics where possible.
GronOptions
Options for gron output.
GronOutputZc
Zero-copy gron output as a vector of lines.
GronParallelOptions
Options for parallel gron output.
GronQueryOptions
Options for query-filtered gron.
JsonlStats
Processing statistics for JSONL.
ParsedExtendedPath
Parsed extended path with owned storage.
PathBuilder
Stack-based path builder for efficient path construction.
Query
A compiled query for path matching.

Enums§

ErrorMode
Error handling for malformed lines.
ExtendedPathComponent
Extended path component supporting both field access and array indexing.
GronOutput
Output format for gron.
IndexFormat
How to format the line index in output.
MatchPotential
Result of checking match potential.
QueryError
Query parsing error.
QuerySegment
A segment in a query path.
UnescapeError
Error type for unescape operations.

Functions§

escape_json_string
Escape a string for JSON output.
escape_json_string_simd
SIMD-accelerated JSON string escaping.
escape_json_to_string
Escape a JSON string, returning a new String.
gron
Convert JSON to gron format.
gron_jsonl
Process JSONL data with SIMD-accelerated line detection.
gron_jsonl_streaming
Process JSONL from a buffered reader (streaming mode).
gron_jsonl_to_writer
Process JSONL data, writing to a writer.
gron_parallel
Convert JSON to gron format using parallel processing for large arrays.
gron_query
Query-filtered gron output.
gron_query_to_writer
Query-filtered gron output to a writer.
gron_to_writer
Convert JSON to gron format, writing to a writer.
gron_zerocopy
Convert JSON to zero-copy gron output.
needs_escape
Check if a string needs JSON escaping.
needs_quoting
Check if a field name needs bracket notation (quoting).
parse_extended_path
Parse an extended path into owned components.
parse_extended_path_ref
Parse an extended path into borrowed components.
unescape_json_string_simd
SIMD-accelerated JSON string unescaping.
unescape_json_to_string
Unescape a JSON string, returning a new String.
ungron
Convert gron output back to JSON string.
ungron_to_value
Convert gron output to a serde_json Value.