jpx-engine 0.4.0

JMESPath query engine with introspection, discovery, and advanced features
Documentation

jpx-engine

Crates.io docs.rs

A protocol-agnostic JMESPath query engine with 490+ functions, the higher-level "brain" of the jpx ecosystem.

It wraps jpx-core with everything beyond basic compile-and-evaluate, so the CLI (jpx), the MCP server (jpx-mcp), and any future REST/gRPC adapters can be thin wrappers over a single engine.

Install

[dependencies]
jpx-engine = "0.3"
serde_json = "1"

Quick start

use jpx_engine::JpxEngine;
use serde_json::json;

let engine = JpxEngine::new();
let result = engine.evaluate("users[*].name", &json!({
    "users": [{ "name": "alice" }, { "name": "bob" }]
})).unwrap();
assert_eq!(result, json!(["alice", "bob"]));

Capabilities

  • Evaluation -- single, batch, and string-based evaluation with validation
  • Introspection -- list, search (BM25), describe, and find-similar over the function registry
  • Discovery -- cross-server tool discovery with a searchable index
  • Query store -- named, session-scoped queries
  • Configuration -- layered jpx.toml discovery (cwd, home, XDG) with merge
  • JSON utilities -- format, diff (RFC 6902), patch, merge (RFC 7396), stats, paths, keys

Features

All optional (default is none):

  • arrow -- Apache Arrow conversion for columnar data (used by the CLI for Parquet I/O)
  • let-expr -- JEP-18 let expressions, forwarded to jpx-core
  • schema -- derive JsonSchema on discovery types (used by the MCP server for tool schemas)

License

Licensed under either of MIT or Apache-2.0 at your option.