datalogic-rs 4.0.9

A fast, type-safe Rust implementation of JSONLogic for evaluating logical rules as JSON. Perfect for business rules engines and dynamic filtering in Rust applications.
Documentation

datalogic-rs

A fast, production-ready Rust engine for JSONLogic.

License: Apache 2.0 Rust Crates.io Documentation npm


Quick Example

use datalogic_rs::DataLogic;
use serde_json::json;

let engine = DataLogic::new();
let logic = json!({ ">": [{ "var": "age" }, 18] });
let compiled = engine.compile(&logic).unwrap();

let result = engine.evaluate_owned(&compiled, json!({ "age": 21 })).unwrap();
assert_eq!(result, json!(true));

Packages

Package Description Install
datalogic-rs Rust library cargo add datalogic-rs
@goplasmatic/datalogic WASM/JavaScript npm i @goplasmatic/datalogic
@goplasmatic/datalogic-ui React visual debugger npm i @goplasmatic/datalogic-ui

Resources

Online Debugger

Key Features

  • Thread-Safe - Compile once, evaluate anywhere with zero-copy Arc sharing
  • Fully Compliant - Passes the official JSONLogic test suite
  • 50+ Operators - Including datetime, regex, and extended string/array operations
  • Extensible - Add custom operators with a simple trait
  • Templating Mode - Preserve object structures for dynamic JSON generation
  • Multi-Platform - Rust, WASM (browser/Node.js), with visual React debugger

JavaScript / TypeScript

import init, { evaluate } from '@goplasmatic/datalogic';

await init();

const result = evaluate(
  '{">=": [{"var": "age"}, 18]}',
  '{"age": 21}',
  false
);
console.log(JSON.parse(result)); // true

React Visual Debugger

import { DataLogicEditor } from '@goplasmatic/datalogic-ui';

<DataLogicEditor
  value={{ "and": [{ ">": [{ "var": "age" }, 18] }, { "var": "active" }] }}
  data={{ age: 25, active: true }}
  mode="debug"
/>

About Plasmatic

Created by Plasmatic, building open-source tools for financial infrastructure and data processing.

License

Licensed under Apache 2.0. See LICENSE for details.