#expression #eval #expression-parser #javascript #js-expression #js-eval

exprimo

Exprimo 是用 Rust 编写的 JavaScript 表达式评估器

15 个版本

0.1.15 2023 年 9 月 5 日
0.1.14 2023 年 8 月 26 日
0.1.13 2023 年 7 月 3 日
0.1.7 2023 年 6 月 27 日

#6 in #eval

Download history 6/week @ 2024-04-22 43/week @ 2024-07-01

每月 160 次下载

MIT 许可证

37KB
424 行代码(不含注释)

Exprimo

注意: 在项目早期阶段,请注意隐蔽的 bug!可能会出现很多 bug,一开始可能很多 :)

Exprimo 是一个用 Rust 编写的 JavaScript 评估器,灵感来源于 angular-expressions 的功能。设计得简单且非常快速。

描述

Exprimo 有效地解析和评估 JavaScript 表达式,并安全使用。它利用 Rust 的强大功能和其卓越的内存安全性保证,提供了一个可靠且快速的 JavaScript 表达式评估器。

安装

在您可以使用 Exprimo 之前,您需要在您的系统上安装 Rust。如果您还没有安装,您可以从此处下载 Rust:官网

Rust 安装后,您可以通过运行以下命令来安装 Exprimo:

cargo add exprimo

可以将跟踪日志添加到包中,默认情况下它是禁用的,除非您正在处理它,或者需要调试 AST 错误。

这将安装 Scribe Rust,并且需要在环境变量中设置 LOG_LEVEL=TRACE 以输出日志。

exprimo = { version = "*", features = ["logging"]

用法

首先,您需要导入 Exprimo 并创建一个 Evaluator 实例。

use exprimo::Evaluator;
use std::collections::HashMap;

let mut context = HashMap::new();
context.insert("a".to_string(), serde_json::Value::Bool(true));        
context.insert("b".to_string(), serde_json::Value::Bool(false));

let evaluator = Evaluator::new(context);

然后,您可以评估 JavaScript 表达式。

let result = evaluator.evaluate("a && b").unwrap();
println!("The result is {}", result);

//--outputs
// >The result is false

示例

运行示例

LOG_LEVEL=TRACE cargo run --features "logging" --example basic

贡献

欢迎使用对 Exprimo 的贡献!请在 GitHub 上提交拉取请求。

许可证

Exprimo 采用 MIT 许可证。请参阅 GitHub 仓库中的 LICENSE 文件以获取更多信息。

依赖

~4–15MB
~139K SLoC