A Rust-based JsonPath engine with WebAssembly and JavaScript bindings for querying and manipulating JSON data.
jsonpath_lib is a JsonPath engine written in Rust that allows developers to query and manipulate JSON data using expressive path expressions. It implements the JsonPath standard to extract, filter, and transform JSON structures, with additional support for WebAssembly and JavaScript environments. The library solves the problem of efficiently navigating and modifying complex JSON data across multiple platforms.
Developers working with JSON data in Rust applications, as well as JavaScript/TypeScript developers needing high-performance JsonPath queries in browsers or Node.js via WebAssembly.
It offers a performant, standards-compliant JsonPath implementation with seamless cross-platform support, leveraging Rust's speed for native use and WebAssembly for web environments without sacrificing API consistency.
JsonPath engine written in Rust. Webassembly and Javascript support too
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Rust's speed for efficient JsonPath queries, with compiled WebAssembly delivering near-native performance in JavaScript, as evidenced by the focus on high-performance implementation.
Provides identical APIs in Rust and JavaScript via WebAssembly bindings, ensuring consistent behavior across environments, highlighted in the README's examples for both Rust and JS.
Includes delete, replace, and SelectorMut operations for in-place JSON manipulation, demonstrated with examples like replace_with for modifying values based on conditions.
Supports selecting results as JSON objects, strings, or deserialized into Rust structs using Serde, allowing seamless integration into different data pipelines.
The JavaScript bindings lack builder pattern support due to wasm-bindgen constraints, making chained operations less intuitive compared to the Rust API, as admitted in the README.
Non-Rust developers may find the native API complex, requiring familiarity with Serde and Rust's type system for advanced use, despite the JavaScript fallback.
README mixes Korean and English, and deeper usage details are split across wiki pages, potentially hindering quick onboarding for international teams.