Skip to main content

Crate jsonlogic_fast

Crate jsonlogic_fast 

Source
Expand description

§jsonlogic-fast

Fast, embeddable, cross-runtime JSON-Logic evaluation.

Implements the full JsonLogic specification with batch evaluation, numeric coercion, and parallel execution via Rayon (sequential on WASM).

§Quick start

use jsonlogic_fast::evaluate;

let rule = r#"{">":[{"var":"age"},18]}"#;
let context = r#"{"age":25}"#;
let result = evaluate(rule, context).unwrap();
assert_eq!(result, serde_json::json!(true));

§Batch evaluation

use jsonlogic_fast::evaluate_batch;

let rule = r#"{"var":"score"}"#;
let contexts = vec![
    r#"{"score":90}"#.to_string(),
    r#"{"score":45}"#.to_string(),
];
let results = evaluate_batch(rule, &contexts).unwrap();
assert_eq!(results, vec![serde_json::json!(90), serde_json::json!(45)]);

Modules§

error
extract

Structs§

EvaluationResult
Result of a single rule evaluation with optional error.
NumericEvaluationResult
Numeric evaluation result with optional error.

Functions§

evaluate
Evaluate a JSON-Logic rule against a single JSON context.
evaluate_batch
Evaluate a rule against many contexts (parallel on native, sequential on WASM).
evaluate_batch_detailed
Like evaluate_batch but returns EvaluationResult with error details.
evaluate_batch_numeric
Batch-evaluate and coerce every result to f64.
evaluate_batch_numeric_detailed
Like evaluate_batch_numeric but returns NumericEvaluationResult with errors.
evaluate_numeric
Evaluate a rule and coerce the result to f64.
evaluate_rule
Alias for evaluate.
get_core_info
Return engine metadata (version, parallelism mode, thread count).
serialize
Serialize any Serialize implementor to a JSON string.
serialize_value
Serialize a Value to a JSON string.
validate_rule
Validate that a rule can be evaluated without errors.