表达式引擎JSEL 2.0 Alpha3 发布
程序员文章站
2022-06-16 21:36:59
...
JSEL是一款非常简单,高效的表达式引擎。
说他简单:因为他带上标准ECMA函数库、Lite模板执行环境后,jar也只有90k;除common-logging外,再无其他依赖。
说他高效:因为据目前的测试数据,他的性能是同类产品中最高的一个。
Ognl/MVEL/Aviator/JSEL四款引擎的对比
JSEL的具体特点如下:
基于ECMA262标准的子集
JSEL是一个兼容 JavaScript 运算规则的简单的表达式解释引擎。
支持ECMA标准的运算符、函数库并内置了JSON支持。
因为基本语法是JavaScript的一个子集,具有良好的群众基础。
一个可以完全自定义的表达式系统
全新运算符定义支持,运算符别名,优先级控制,内置对象设置,等等,一切皆有可能。你完全可以在JSEL基础上DIY一套适合你自己的表达式系统。
详情可参考:http://code.google.com/p/lite/wiki/JSELExtension
执行效率远高于同类
其实,JSEL的开发过程中,并没有太关注效率,甚至为保持与JavaScript的兼容性,不得不采用影响性能的设计。
然而,发布出来后,性能测试的数据还是非常漂亮的:
具体数据键(包含Ognl/MVEL/Aviator/JSEL四款引擎的对比):http://www.iteye.com/topic/732354
内置功能强大的JSON解释支持
因为JSEL本身是基于JavaScript规则的,JSON本身就是JavaScript功能的子集,那么JSEL自然也就是一个天然的JSON工具,此外,表达式的编译,本身就继承了JSON解析的功能,而且,我们也吧JSON支持的功能提出为独立的模块,相比官方的JSON解析,JSEL的JSON功能更简单,更有独到的优点。
更多介绍见:http://code.google.com/p/lite/wiki/JSON
不仅是一个表达式
此外JSEL还提供了一些常用的工具支持,如命令行解析器,这是一个在表达式基础上建立起来的功能强大的命令行分析程序,如果你想编写一些基于命令行的工具程序,那么JSEL绝对是您最棒的助手。
该工具的基本用法简介:http://code.google.com/p/lite/wiki/CPEL
背后是一个空前强大的模板系统
JSEL并不是一个为了表达式而编写的表达式引擎,他本来只是Lite模板的一个基本功能,目前Lite模板系统正在做全面重构。这里就先留个悬念吧。以后你会知道的^_^
------------------------------
JSEL基于LGPL开源协议发布,(LiteRT-yyMMdd.jar,与Lite模板运行环境一起打包发布,不足100k),你可以从如下地址下载,并将其功能集成到你的系统中。
http://code.google.com/p/lite/downloads/list
因为JSEL本身只是Lite模板平台的一个子功能,所以,并没有专门的版本管理,版本号都是跟Lite的版本来的。
目前的版本只是在Lite2大重构过程中对于表达式功能的一个阶段性成就。
说他简单:因为他带上标准ECMA函数库、Lite模板执行环境后,jar也只有90k;除common-logging外,再无其他依赖。
说他高效:因为据目前的测试数据,他的性能是同类产品中最高的一个。
Ognl/MVEL/Aviator/JSEL四款引擎的对比
JSEL的具体特点如下:
基于ECMA262标准的子集
JSEL是一个兼容 JavaScript 运算规则的简单的表达式解释引擎。
支持ECMA标准的运算符、函数库并内置了JSON支持。
因为基本语法是JavaScript的一个子集,具有良好的群众基础。
一个可以完全自定义的表达式系统
全新运算符定义支持,运算符别名,优先级控制,内置对象设置,等等,一切皆有可能。你完全可以在JSEL基础上DIY一套适合你自己的表达式系统。
详情可参考:http://code.google.com/p/lite/wiki/JSELExtension
执行效率远高于同类
其实,JSEL的开发过程中,并没有太关注效率,甚至为保持与JavaScript的兼容性,不得不采用影响性能的设计。
然而,发布出来后,性能测试的数据还是非常漂亮的:
具体数据键(包含Ognl/MVEL/Aviator/JSEL四款引擎的对比):http://www.iteye.com/topic/732354
内置功能强大的JSON解释支持
因为JSEL本身是基于JavaScript规则的,JSON本身就是JavaScript功能的子集,那么JSEL自然也就是一个天然的JSON工具,此外,表达式的编译,本身就继承了JSON解析的功能,而且,我们也吧JSON支持的功能提出为独立的模块,相比官方的JSON解析,JSEL的JSON功能更简单,更有独到的优点。
更多介绍见:http://code.google.com/p/lite/wiki/JSON
不仅是一个表达式
此外JSEL还提供了一些常用的工具支持,如命令行解析器,这是一个在表达式基础上建立起来的功能强大的命令行分析程序,如果你想编写一些基于命令行的工具程序,那么JSEL绝对是您最棒的助手。
该工具的基本用法简介:http://code.google.com/p/lite/wiki/CPEL
背后是一个空前强大的模板系统
JSEL并不是一个为了表达式而编写的表达式引擎,他本来只是Lite模板的一个基本功能,目前Lite模板系统正在做全面重构。这里就先留个悬念吧。以后你会知道的^_^
------------------------------
JSEL基于LGPL开源协议发布,(LiteRT-yyMMdd.jar,与Lite模板运行环境一起打包发布,不足100k),你可以从如下地址下载,并将其功能集成到你的系统中。
http://code.google.com/p/lite/downloads/list
因为JSEL本身只是Lite模板平台的一个子功能,所以,并没有专门的版本管理,版本号都是跟Lite的版本来的。
目前的版本只是在Lite2大重构过程中对于表达式功能的一个阶段性成就。
下一篇: JFreeChart乱码解决方法