awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 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·10 Aufrufeexpr-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-Verlauf

Star-Verlauf für antonmedv/exprStar-Verlauf für antonmedv/expr

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Expr

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Expr.
  • expr-lang/exprAvatar von expr-lang

    expr-lang/expr

    7,906Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗7,906
  • google/cel-goAvatar von google

    google/cel-go

    2,875Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗2,875
  • d5/tengoAvatar von d5

    d5/tengo

    3,821Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗3,821
  • yuin/gopher-luaAvatar von yuin

    yuin/gopher-lua

    6,933Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗6,933
Alle 30 Alternativen zu Expr anzeigen→

Häufig gestellte Fragen

Was macht 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.

Was sind die Hauptfunktionen von antonmedv/expr?

Die Hauptfunktionen von antonmedv/expr sind: Expression Evaluators, Bytecode Virtual Machines, Embedded Logic Evaluation, Type Validation, Expression Languages, Runtime Type Validation, Abstract Syntax Tree Parsing, Dynamic Rule Engines.

Welche Open-Source-Alternativen gibt es zu antonmedv/expr?

Open-Source-Alternativen zu antonmedv/expr sind unter anderem: 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…