awesome-repositories.com
Blog
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
antonmedv avatar

antonmedv/expr

0
View on GitHub↗
7,905 stele·504 fork-uri·Go·MIT·6 vizualizăriexpr-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.

Istoric stele

Graficul istoricului de stele pentru antonmedv/exprGraficul istoricului de stele pentru antonmedv/expr

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Alternative open-source pentru Expr

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Expr.
  • expr-lang/exprAvatar expr-lang

    expr-lang/expr

    7,906Vezi pe 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
    Vezi pe GitHub↗7,906
  • google/cel-goAvatar google

    google/cel-go

    2,875Vezi pe 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
    Vezi pe GitHub↗2,875
  • d5/tengoAvatar d5

    d5/tengo

    3,821Vezi pe 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
    Vezi pe GitHub↗3,821
  • yuin/gopher-luaAvatar yuin

    yuin/gopher-lua

    6,933Vezi pe 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
    Vezi pe GitHub↗6,933
Vezi toate cele 30 alternative pentru Expr→

Întrebări frecvente

Ce face 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.

Care sunt principalele funcționalități ale antonmedv/expr?

Principalele funcționalități ale antonmedv/expr sunt: Expression Evaluators, Bytecode Virtual Machines, Embedded Logic Evaluation, Type Validation, Expression Languages, Runtime Type Validation, Abstract Syntax Tree Parsing, Dynamic Rule Engines.

Care sunt câteva alternative open-source pentru antonmedv/expr?

Alternativele open-source pentru antonmedv/expr includ: 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…