datalogic-rs - JSONLogic 的Rust实现
JSONLogic 是一种使用 JSON 编写可移植逻辑规则的标准。该库采用基于 AST 的评估系统,并具有两阶段执行模型:首先通过 from_value
将表达式解析为预编译的 AST,然后使用 apply
函数执行它们。
什么是 JSONLogic?
JSONLogic 允许你将逻辑表达式编写为 JSON 对象,这些对象可以轻松地存储并在不同系统之间传输。例如:
{
"max": {"var": "data"}
}
特性
完整实现了 JSONLogic 规范
基于 AST 的评估,实现高效执行
使用 serde 进行零拷贝反序列化
全面的测试覆盖,包括所有官方测试用例
纯 Rust 实现,依赖极少
支持自定义操作
为什么要有另一个实现?
虽然其他语言已经有几个 JSONLogic 的实现,但我希望创建一个健壮、类型安全的实现,利用 Rust 的强大保证和性能特性。
使用示例
use datalogic_rs::*;
use serde_json::json;
fn main() {
// 解析并编译表达式
let logic = json!({ "max": {"var": "