awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
antonmedv avatar

antonmedv/expr

0
View on GitHub↗
7,905 stars·504 forks·Go·MIT·15 viewsexpr-lang.org↗

Expr

Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic rule engine that parses and executes custom logic and data validations at runtime without requiring the application to be recompiled.

The system utilizes a sandboxed logic executor to run expressions without side effects. It ensures program termination by employing instruction-level loop detection to prevent infinite loops and isolates the evaluation process from the host system.

The engine employs a bytecode-based virtual machine and abstract syntax tree analysis to achieve execution. It includes static type resolution and runtime type validation to ensure data correctness, using reflection to map external object properties to expression identifiers.

Features

  • Expression Evaluators - Provides a high-performance engine for parsing and executing custom logical expressions at runtime.
  • Bytecode Virtual Machines - Compiles expressions into low-level bytecode for high-speed execution via a custom virtual machine.
  • Embedded Logic Evaluation - Integrates an expression parser and evaluator to execute custom logic within Go applications without recompilation.
  • Type Validation - Implements type correctness checks during expression evaluation to ensure consistent data handling.
  • Expression Languages - Implements a custom expression language for defining dynamic logic within Go applications.
  • Runtime Type Validation - Verifies that dynamic expressions adhere to specific data types during execution to ensure behavioral correctness.
  • Abstract Syntax Tree Parsing - Converts source text into a structured tree for semantic validation and type checking before execution.
  • Dynamic Rule Engines - Functions as a dynamic rule engine that parses and executes custom logic and data validations at runtime.
  • Sandboxed Execution Environments - Isolates the expression evaluation process from the host system to prevent unauthorized side effects.
  • Expression Type Resolution - Determines expected data types during compilation to avoid runtime type mismatches.
  • Business Rule Engines - Enables the creation of systems where non-developers can define business logic using a simplified language.
  • Logic Sandboxing - Safely runs untrusted user-provided logic within Go programs to prevent crashes and infinite loops.
  • Execution Sandboxes - Restricts the execution environment of dynamic expressions to prevent unauthorized system access and infinite loops.
  • Loop Detection - Employs instruction-level loop detection to ensure program termination and prevent infinite loops.
  • Dynamic Property Mapping - Uses Go reflection to dynamically map external object properties and methods to expression identifiers.
  • Compilers and Interpreters - Compiles and executes string-based expressions.
  • Embedded Scripting - Engine for evaluating expressions.
  • Scripting Languages - Dynamic expression evaluation engine.

Star history

Star history chart for antonmedv/exprStar history chart for antonmedv/expr

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Expr

Similar open-source projects, ranked by how many features they share with Expr.
  • expr-lang/exprexpr-lang avatar

    expr-lang/expr

    7,906View on GitHub↗

    Expr is a statically typed expression engine and domain-specific language for parsing and evaluating dynamic logic strings within Go applications. It functions as a bytecode expression evaluator that executes compiled logic with guaranteed termination and memory safety. The engine utilizes a specialized compiler and virtual machine to achieve high-performance execution. It employs static type validation during the compilation phase to ensure operand compatibility and prevent runtime crashes. The project provides a data transformation engine capable of mapping, filtering, and aggregating coll

    Gobytecodeconfiguration-languageengine
    View on GitHub↗7,906
  • google/cel-gogoogle avatar

    google/cel-go

    2,875View on GitHub↗

    cel-go is a Go implementation of the Common Expression Language, providing a type-safe engine for the evaluation of non-Turing complete, side-effect-free expressions. It functions as an embedded expression engine that converts human-readable strings into type-checked abstract syntax trees to ensure safe execution. The system utilizes a compile-once evaluate-many model, parsing and validating expressions into cached programs for repeated execution across different datasets. It further distinguishes itself as a partial state evaluator, using commutative logic to compute results and return resid

    Gocelexpressionexpression-evaluator
    View on GitHub↗2,875
  • d5/tengod5 avatar

    d5/tengo

    3,821View on GitHub↗

    Tengo is a dynamic, embeddable scripting language for Go applications that allows for the execution of custom scripts without requiring the host binary to be recompiled. It operates as a bytecode-compiled virtual machine, transforming source code into a compact intermediate representation for execution on a stack-based engine. The system is designed as a secure scripting sandbox, enforcing strict limits on memory allocation and execution time to safely run untrusted code. It supports concurrent script execution by cloning compiled bytecode and using recursive immutability conversion to share

    Go
    View on GitHub↗3,821
  • yuin/gopher-luayuin avatar

    yuin/gopher-lua

    6,933View on GitHub↗

    Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment. The project provides a bytecode compiler to transform source code into a binary format for faster execution. It enables deep integration between the two languages by allowing the registration of native Go functions to be called from scripts, and the invocation of script functions directly from Go. The engine c

    Gogogopher-lualua
    View on GitHub↗6,933
See all 30 alternatives to Expr→

Frequently asked questions

What does antonmedv/expr do?

Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic rule engine that parses and executes custom logic and data validations at runtime without requiring the application to be recompiled.

What are the main features of antonmedv/expr?

The main features of antonmedv/expr are: Expression Evaluators, Bytecode Virtual Machines, Embedded Logic Evaluation, Type Validation, Expression Languages, Runtime Type Validation, Abstract Syntax Tree Parsing, Dynamic Rule Engines.

What are some open-source alternatives to antonmedv/expr?

Open-source alternatives to antonmedv/expr include: expr-lang/expr — Expr is a statically typed expression engine and domain-specific language for parsing and evaluating dynamic logic… google/cel-go — cel-go is a Go implementation of the Common Expression Language, providing a type-safe engine for the evaluation of… yuin/gopher-lua — Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It… d5/tengo — Tengo is a dynamic, embeddable scripting language for Go applications that allows for the execution of custom scripts… google/cel-spec — The Common Expression Language specification is a formal standard for a non-Turing-complete expression language… kanaka/mal — This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of…