表達式計算引擎,Fel 0.7 版本發布
Fel是輕量級的高效的表達式計算引擎。
Fel在源自于企業項目,設計目標是為了滿足不斷變化的功能需求和性能需求。
Fel是開放的,引擎執行中的多個模塊都可以擴展或替換。Fel的執行主要是通過函數實現,運算符(+、-等都是Fel函數),所有這些函數都是可以替換的,擴展函數也非常簡單。
Fel有雙引擎,同時支持解釋執行和編譯執行。可以根據性能要求選擇執行方式。編譯執行就是將表達式編譯成字節碼(生成java代碼和編譯模塊都是可以擴展和替換的)
Fel基于Java1.5開發,適用于Java1.5及以上版本。
特點:
易用性:API使用簡單,語法簡潔,和java語法很相似。
輕量級:整個包只有300多KB。
高 效:目前沒有發現有開源的表達式引擎比Fel快。
擴展性:采用模塊化設計,可靈活控制表達式的執行過程。
根函數:Fel支持根函數,“$('Math')”在Fel中是常用的使用函數的方式。
$函數:通過$函數,Fel可以方便的調用工具類或對象的方法(并不需要任何附加代碼),具體請看示例。
不足:
支持腳本:否。
適應場景:
Fel適合處理海量數據,Fel良好的擴展性可以更好的幫助用戶處理數據。
Fel同樣適用于其他需要使用表達式的地方(如果工作流、公式計算、數據有效性校驗等等)
此版本改進:
1:支持數組訪問(array[i])和集合訪問(list[i],set[i]等)。并支持多維數組及多維List。
2:設置變量時可以指定變量類型(FelContext.setVar(..)),同時調整FelContext接口。
3:四則運算返回的結果類型更精確。
4:性能再度提升。
5:解決求負求正運算在編譯時返回類型不正確的BUG。
更多內容
項目地址:http://code.google.com/p/fast-el/
下 載:http://fast-el.googlecode.com/files/fel-all-0.7.jar
文 檔:http://fast-el.googlecode.com/files/Fel%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%BC%95%E6%93%8E.doc
性能測試:http://code.google.com/p/fast-el/wiki/Performance