Skip to content

v0.1.0 — Initial Release

Choose a tag to compare

@copyleftdev copyleftdev released this 05 Apr 01:38
· 14 commits to main since this release

seuil v0.1.0

A complete, safe JSONata implementation in Rust — JSON query, transform, and expression evaluation.

Highlights

  • 99.6% JSONata spec compliance — 1,027 of 1,031 official test cases pass
  • Zero unsafe code — #![forbid(unsafe_code)] enforced
  • 47 built-in functions — strings, math, arrays, objects, HOFs, date/time, regex
  • Compile once, evaluate many — Seuil::compile("expr").evaluate(&json)
  • Arena allocation via bumpalo for cache-friendly evaluation
  • Deterministic simulation testing via injectable Environment trait

Quick Start

[dependencies]
seuil = "0.1"
serde_json = "1"
use seuil::Seuil;

let expr = Seuil::compile("orders[status='paid'].amount ~> $sum()")?;
let data = serde_json::json!({
    "orders": [
        {"status": "paid", "amount": 100},
        {"status": "pending", "amount": 50},
        {"status": "paid", "amount": 200}
    ]
});
let result = expr.evaluate(&data)?;
assert_eq!(result, serde_json::json!(300.0));

Testing Rigor

  • VOPR campaigns: 10,000+ seeds, zero panics
  • Chaos testing: 9 fault injection categories
  • Property-based: ~14,000 generated cases via proptest
  • Fuzzing: libfuzzer with corpus and dictionary
  • CI: GitHub Actions on every push, nightly fuzzing and VOPR

Full Changelog

See CHANGELOG.md