42 个版本 (23 个重大更新)
0.26.0 | 2024 年 8 月 8 日 |
---|---|
0.24.3 | 2024 年 8 月 1 日 |
0.24.2 | 2024 年 7 月 17 日 |
0.19.0 | 2024 年 3 月 25 日 |
0.8.0 | 2023 年 7 月 28 日 |
#95 in 日期和时间
每月 1,258 次下载
用于 2 crates
205KB
5K SLoC
一种轻量级表达式语言,专为在各种环境中评估表达式而设计。
禅表达式是一种灵活的单线程表达式语言,专为简洁和高效而设计。它主要用于评估和处理 JSON 数据,提供了关键组件,使开发者能够轻松创建响应式和非阻塞 I/O 应用程序。开箱即用,它提供了惊人的优势
- 🚀 非常快 - 每秒执行数百万次评估
- 🧠 直观的语法 - 最小化且表达性强的语法
- 💼 可移植 - 可编译为包括 WASM 在内的所有标准架构
有关语言参考的完整列表,请访问 文档。
示例
使用隔离区评估表达式
use zen_expression::{evaluate_expression, json};
fn main() {
let context = json!({ "tax": { "percentage": 10 } });
let tax_amount = evaluate_expression("50 * tax.percentage / 100", &context).unwrap();
assert_eq!(tax_amount, json!(5));
}
高性能
在同时评估大量表达式时,您可以直接使用隔离区。在底层,隔离区将重复使用先前评估中分配的内存,从而显著提高性能。
use zen_expression::{Isolate, json};
fn main() {
let context = json!({ "tax": { "percentage": 10 } });
let mut isolate = Isolate::with_environment(&context);
// Fast 🚀
for _ in 0..1_000 {
let tax_amount = isolate.run_standard("50 * tax.percentage / 100").unwrap();
assert_eq!(tax_amount, json!(5));
}
}
功能标志
名称 | 描述 | 默认? |
---|---|---|
regex-deprecated |
使用标准 regex crate |
是 |
regex-lite |
使用轻量级 regex-lite crate 的选项。对于减少构建大小特别有用,尤其是在 WASM 中。 |
否 |
依赖项
~3–5MB
~88K SLoC