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

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

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

expr-lang/expr

0
View on GitHub↗
7,906 星标·504 分支·Go·MIT·2 次浏览expr-lang.org↗

Expr

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 collections through functional operators. It ensures security by using a pure-function execution model that calculates results without modifying external state or introducing side effects.

Features

  • Dynamic Rule Engines - Provides a dynamic rule engine to evaluate custom logic strings at runtime based on changing data environments.
  • Bytecode Virtual Machines - Utilizes a custom bytecode virtual machine to execute compiled expressions with high performance and guaranteed termination.
  • Expression Evaluators - Parses and executes dynamic logic expressions against specific data environments to determine results at runtime.
  • Type Validation - Validates that dynamic expressions adhere to expected data types during compilation to prevent runtime errors.
  • Statically Typed Evaluators - Ships a statically typed engine that validates type compatibility during compilation to prevent runtime data errors.
  • Expression Languages - Provides a domain-specific expression language for parsing and evaluating dynamic logic strings within Go applications.
  • High-Performance Expression Evaluators - Running complex logic via a bytecode compiler and virtual machine to achieve faster evaluation than standard interpreters.
  • Sandboxed Logic Execution - Ensures memory safety and guaranteed termination when executing user-defined logic within Go applications.
  • Expression Sandboxes - Provides a security layer ensuring user-defined expressions terminate reliably and execute without memory vulnerabilities.
  • Pure Functional Logic Implementations - Uses a pure-function execution model to calculate results without modifying external state or introducing side effects.
  • Static Analysis - Performs static analysis during the compilation phase to validate operand compatibility and prevent runtime crashes.
  • Data Transformation - Enables the restructuring and mapping of data collections using a flexible, runtime-evaluated expression language.
  • Collection Operators - Provides functional operators such as map and filter to transform, refine, and aggregate data collections.
  • Context-Aware Variable Resolution - Resolves variable identifiers by looking up values within a provided data context during expression evaluation.
  • Expression Tree Compilation - Transforms human-readable expressions into an executable internal format to eliminate repeated parsing overhead at runtime.
  • Abstract Syntax Tree Parsing - Implements a system to convert expression strings into structured trees for logical analysis and grammar enforcement.

Star 历史

expr-lang/expr 的 Star 历史图表expr-lang/expr 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

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

Start searching with AI

常见问题解答

expr-lang/expr 是做什么的?

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.

expr-lang/expr 的主要功能有哪些?

expr-lang/expr 的主要功能包括:Dynamic Rule Engines, Bytecode Virtual Machines, Expression Evaluators, Type Validation, Statically Typed Evaluators, Expression Languages, High-Performance Expression Evaluators, Sandboxed Logic Execution。

expr-lang/expr 有哪些开源替代品?

expr-lang/expr 的开源替代品包括: antonmedv/expr — Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic… google/cel-go — cel-go is a Go implementation of the Common Expression Language, providing a type-safe engine for the evaluation of… killme2008/aviatorscript — Aviatorscript is a high-performance scripting language and expression evaluation engine designed for integration… knetic/govaluate — govaluate is a Go expression evaluator and runtime logic parser. It functions as a dynamic rule engine that converts… google/cel-spec — The Common Expression Language specification is a formal standard for a non-Turing-complete expression language… microsoft/rulesengine — RulesEngine is a business logic evaluator for .NET that executes complex rule workflows and dynamic expressions…

Expr 的开源替代方案

相似的开源项目,按与 Expr 的功能重合度排序。
  • antonmedv/exprantonmedv 的头像

    antonmedv/expr

    7,905在 GitHub 上查看↗

    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 ex

    Go
    在 GitHub 上查看↗7,905
  • 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
  • killme2008/aviatorscriptkillme2008 的头像

    killme2008/aviatorscript

    5,216在 GitHub 上查看↗

    Aviatorscript is a high-performance scripting language and expression evaluation engine designed for integration within Java applications. It enables the dynamic execution of mathematical and logical formulas by compiling script instructions directly into Java bytecode at runtime. The engine distinguishes itself by transforming dynamic logic into machine-readable instructions, allowing for near-native execution speeds. It includes a built-in caching mechanism that stores compiled bytecode to eliminate redundant parsing and compilation overhead during repeated formula execution. This library

    Javaaviatorscriptexpression-evaluatorjava
    在 GitHub 上查看↗5,216
  • google/cel-specgoogle 的头像

    google/cel-spec

    3,673在 GitHub 上查看↗

    The Common Expression Language specification is a formal standard for a non-Turing-complete expression language designed for safe, portable, and fast logic evaluation. It serves as a cross-language logic standard and a declarative policy language, providing a consistent semantic framework for executing boolean expressions and data transformations across different programming environments. This specification acts as an embedded expression engine that allows applications to integrate portable logic for evaluating user-defined configurations. It is specifically designed to enable safe user-defin

    Starlark
    在 GitHub 上查看↗3,673
查看 Expr 的所有 30 个替代方案→