Git Product home page Git Product logo

aviator's Introduction

Build Status

int[] a = ...;
Map<String, Object> env = new HashMap<String, Object>();
env.put("a", a);

AviatorEvaluator.execute("1 + 2 + 3");
AviatorEvaluator.execute("a[1] + 100", env);
AviatorEvaluator.execute("'a[1]=' + a[1]", env);
//求数组长度
AviatorEvaluator.execute("count(a)", env);
//求数组总和
AviatorEvaluator.execute("reduce(a, +, 0)", env);
//检测数组每个元素都在 0 <= e < 10 之间。
AviatorEvaluator.execute("seq.every(a, seq.and(seq.ge(0), seq.lt(10)))", env);
//Lambda 求和
AviatorEvaluator.execute("reduce(a, lambda(x,y) -> x + y end, 0)", env);

Intro

Aviator is a lighweith,high performance expression evaluator for java. Aviator compiles expresson to byte code and evaluate it on the fly.

Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。更详细的请阅读开发指南

特性包括:

  1. 支持绝大多数运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(=~)、三元表达式(?:)
  2. 支持操作符优先级和括号强制设定优先级
  3. 逻辑运算符支持短路运算。
  4. 支持丰富类型,例如nil、整数和浮点数、字符串、正则表达式、日期、变量等,支持自动类型转换。
  5. 支持 lambda 匿名函数和闭包。
  6. 内置一套强大的常用函数库
  7. 可自定义函数,易于扩展
  8. 可重载操作符
  9. 支持大数运算(BigInteger)和高精度运算(BigDecimal)
  10. 小巧并性能优秀

更多详情,请访问主页

News

  • 4.0.0-RC 发布。支持 lambda 函数和闭包、多求值器实例创建和多行表达式等。
  • 3.3.0 发布。支持运算符重载和跟踪执行过程等。
  • 3.2.0 发布。改善编译性能,大多数涉及动态变量的表达式的编译性能都有 50%-60% 的提升;不再兼容 JDK6 及以下版本
  • 3.1.1 发布。修复 AviatorString 比较运算符存在的 NPE 异常。

Dependency

  <dependency>
      <groupId>com.googlecode.aviator</groupId>
      <artifactId>aviator</artifactId>
      <version>{version}</version>
  </dependency>

Links

aviator's People

Contributors

fanofxiaofeng avatar guoqiwen8 avatar killme2008 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.