awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
antonmedv avatar

antonmedv/expr

0
View on GitHub↗
7,905 estrellas·504 forks·Go·MIT·10 vistasexpr-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.

Historial de estrellas

Gráfico del historial de estrellas de antonmedv/exprGráfico del historial de estrellas de antonmedv/expr

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Preguntas frecuentes

¿Qué hace antonmedv/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.

¿Cuáles son las características principales de antonmedv/expr?

Las características principales de antonmedv/expr son: Expression Evaluators, Bytecode Virtual Machines, Embedded Logic Evaluation, Type Validation, Expression Languages, Runtime Type Validation, Abstract Syntax Tree Parsing, Dynamic Rule Engines.

¿Qué alternativas de código abierto existen para antonmedv/expr?

Las alternativas de código abierto para antonmedv/expr incluyen: 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…

Alternativas open-source a Expr

Proyectos open-source similares, clasificados según cuántas características comparten con Expr.
  • expr-lang/exprAvatar de expr-lang

    expr-lang/expr

    7,906Ver en 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
    Ver en GitHub↗7,906
  • google/cel-goAvatar de google

    google/cel-go

    2,875Ver en 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
    Ver en GitHub↗2,875
  • d5/tengoAvatar de d5

    d5/tengo

    3,821Ver en 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
    Ver en GitHub↗3,821
  • yuin/gopher-luaAvatar de yuin

    yuin/gopher-lua

    6,933Ver en 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
    Ver en GitHub↗6,933
Ver las 30 alternativas a Expr→