tabulon
A high-performance, JIT-compiled expression evaluation engine for Rust, built on Cranelift.
tabulon parses simple arithmetic and boolean expressions and compiles them to native machine code at runtime. It is designed for applications like game servers, configuration scripts, or anywhere you need to safely and repeatedly evaluate user-provided expressions with maximum performance.
Features
- High-Performance JIT Compilation: Expressions are compiled to native machine code for near-native performance, powered by Cranelift.
- Rich Operator Support: Full support for arithmetic (
+,-,*,/), comparison (==,!=,<,<=,>,>=), and logical (&&,||) operators. - Efficient & Safe:
- Short-circuiting for
if(...),&&, and||operators avoids unnecessary computation. - AST-level optimizations like constant folding are performed automatically.
- All execution is sandboxed within the JIT engine.
- Short-circuiting for
- Extensible: Register your own custom Rust functions to be called from within an expression.
- Flexible: Use custom resolvers to map variables to your application's specific data structures.
Quick Start
-
Add
tabulonto yourCargo.toml:[] = "0.1.0" -
Use the engine to compile and evaluate an expression:
use Tabula;
Custom Functions
You can easily register your own Rust functions to be used in expressions.
use ;
// Use the `#[function]` attribute to make a function discoverable.
Performance
tabulon is designed for speed. By compiling expressions down to a few simple machine instructions, it can evaluate them orders of magnitude faster than a tree-walking interpreter. Benchmarks are included in the repository (cargo bench).
License
This project is licensed under the MIT License.