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
每月 160 次下载
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