awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
antonmedv avatar

antonmedv/expr

0
View on GitHub↗
7,905 星标·504 分支·Go·MIT·4 次浏览expr-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 历史

antonmedv/expr 的 Star 历史图表antonmedv/expr 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Expr 的开源替代方案

相似的开源项目,按与 Expr 的功能重合度排序。
  • expr-lang/exprexpr-lang 的头像

    expr-lang/expr

    7,906在 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
    在 GitHub 上查看↗7,906
  • google/cel-gogoogle 的头像

    google/cel-go

    2,875在 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
    在 GitHub 上查看↗2,875
  • d5/tengod5 的头像

    d5/tengo

    3,821在 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
    在 GitHub 上查看↗3,821
  • yuin/gopher-luayuin 的头像

    yuin/gopher-lua

    6,933在 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
    在 GitHub 上查看↗6,933
查看 Expr 的所有 30 个替代方案→

常见问题解答

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.

antonmedv/expr 的主要功能有哪些?

antonmedv/expr 的主要功能包括:Expression Evaluators, Bytecode Virtual Machines, Embedded Logic Evaluation, Type Validation, Expression Languages, Runtime Type Validation, Abstract Syntax Tree Parsing, Dynamic Rule Engines。

antonmedv/expr 有哪些开源替代品?

antonmedv/expr 的开源替代品包括: 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…