# microsoft/rulesengine

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-rulesengine).**

4,299 stars · 614 forks · C# · MIT

## Links

- GitHub: https://github.com/microsoft/RulesEngine
- Homepage: https://microsoft.github.io/RulesEngine/
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-rulesengine.md

## Topics

`dotnet` `engine` `expression-evaluator` `nuget` `rules` `rules-engine` `workflow`

## Description

RulesEngine is a business logic evaluator for .NET that executes complex rule workflows and dynamic expressions against input data. It functions as a dynamic expression evaluator and an externalized logic framework, allowing the definition and management of business rules in JSON format to change application behavior without recompiling code.

The project decouples decision logic from source code by loading policies from external files or databases. It supports the registration of custom classes and methods to extend standard expression capabilities through type injection.

The framework covers automated workflow orchestration, complex condition validation, and the evaluation of standalone logic expressions. It includes capabilities for parameter aliasing to simplify long rule definitions and triggers specific events or actions based on rule evaluation outcomes.

## Tags

### Programming Languages & Runtimes

- [Runtime .NET](https://awesome-repositories.com/f/programming-languages-runtimes/expression-evaluators/runtime-net.md) — Provides a .NET business logic evaluator for executing complex rule workflows and dynamic expressions.
- [Expression Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/expression-evaluators.md) — Provides an engine for processing mathematical and logical expressions against data at runtime. ([source](https://cdn.jsdelivr.net/gh/microsoft/rulesengine@main/README.md))
- [Dynamic Logic Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/expression-evaluators/dynamic-logic-evaluators.md) — Provides a tool for parsing and computing standalone logical expressions and data queries within a .NET environment.
- [Rule Engine Type Injections](https://awesome-repositories.com/f/programming-languages-runtimes/class-based-architecture/rule-logic-extensions/rule-engine-type-injections.md) — Allows registering custom classes or types to make their properties and methods available within rule expressions. ([source](https://microsoft.github.io/RulesEngine/))

### Software Engineering & Architecture

- [Business Rule Evaluation](https://awesome-repositories.com/f/software-engineering-architecture/business-rule-evaluation.md) — Computes results using predefined logic policies and input data to determine if specific conditions are met. ([source](https://github.com/microsoft/RulesEngine/wiki/Introduction))
- [Dynamic Rule Engines](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-rule-engines.md) — Functions as a dynamic rule engine that evaluates custom logic and validations at runtime without requiring recompilation.
- [Externalized Logic Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/externalized-logic-frameworks.md) — Provides a framework for decoupling business rules from source code by loading policies from external files or databases.
- [Externalized Logic Schemas](https://awesome-repositories.com/f/software-engineering-architecture/externalized-logic-schemas.md) — Enables loading rule definitions from external sources to update policies without requiring a full application redeploy.
- [Externalized Policy Management](https://awesome-repositories.com/f/software-engineering-architecture/externalized-policy-management.md) — Decouples decision logic from source code by loading policies from external files or databases.
- [Rule Chain Workflows](https://awesome-repositories.com/f/software-engineering-architecture/iterative-rule-evaluation/rule-chain-workflows.md) — Implements sequential rule execution where results trigger subsequent logic steps.
- [Workflow Orchestration](https://awesome-repositories.com/f/software-engineering-architecture/rule-configuration-engines/rule-execution-engines/workflow-orchestration.md) — Executes a sequence of rules against input objects to determine which specific conditions are triggered. ([source](https://microsoft.github.io/RulesEngine/))
- [Expression Parameter Aliasing](https://awesome-repositories.com/f/software-engineering-architecture/expression-parameter-aliasing.md) — Simplifies complex data identifiers with named labels to enhance the maintainability of rule definitions.
- [Expression Simplifications](https://awesome-repositories.com/f/software-engineering-architecture/expression-simplifications.md) — Provides the ability to break down large logical statements into smaller, reusable intermediate expressions within rule definitions. ([source](https://github.com/microsoft/RulesEngine/wiki/Getting-Started))
- [Input Parameter Mapping](https://awesome-repositories.com/f/software-engineering-architecture/input-parameter-mapping.md) — Allows assigning context-specific names to input data sources to replace generic identifiers with meaningful labels. ([source](https://github.com/microsoft/RulesEngine/wiki/Getting-Started))
- [Reflection-Based Property Accessors](https://awesome-repositories.com/f/software-engineering-architecture/reflection-based-unmarshallers/reflection-based-property-accessors.md) — Uses reflection-based property accessors to expose external class properties and methods to the engine.
- [Rule Parameter Aliasing](https://awesome-repositories.com/f/software-engineering-architecture/rule-parameter-aliasing.md) — Replaces complex expressions with global or local aliases to improve the maintainability of long rule definitions. ([source](https://microsoft.github.io/RulesEngine/))

### Artificial Intelligence & ML

- [External Rule Management](https://awesome-repositories.com/f/artificial-intelligence-ml/rule-based-ai-systems/external-rule-management.md) — Stores business rules as structured data in external files or databases to update policies at runtime. ([source](https://cdn.jsdelivr.net/gh/microsoft/rulesengine@main/README.md))

### Business & Productivity Software

- [Dynamic Logic Configuration](https://awesome-repositories.com/f/business-productivity-software/business-logic-customization/dynamic-logic-configuration.md) — Updates application behavior and policy rules using JSON without needing to recompile or redeploy code.

### DevOps & Infrastructure

- [Automated Workflow Orchestration](https://awesome-repositories.com/f/devops-infrastructure/automated-workflow-orchestration.md) — Orchestrates sequences of conditional rules to trigger specific events or actions based on input data.

### Security & Cryptography

- [General Purpose JSON Rule Engines](https://awesome-repositories.com/f/security-cryptography/json-based-rule-engines/general-purpose-json-rule-engines.md) — Provides a system for defining and storing logic policies in JSON format to change application behavior without recompiling.
- [JSON Policy Definitions](https://awesome-repositories.com/f/security-cryptography/json-based-rule-engines/json-policy-definitions.md) — Allows specifying business logic and policies using a JSON data format that supports custom expressions and query operations. ([source](https://microsoft.github.io/RulesEngine/))

### Testing & Quality Assurance

- [Conditional Logic Evaluation](https://awesome-repositories.com/f/testing-quality-assurance/boolean-assertions/conditional-logic-evaluation.md) — Evaluates multi-step logical requirements and data dependencies to verify business criteria.
- [Runtime Logic Parsing](https://awesome-repositories.com/f/testing-quality-assurance/static-code-analysis/ast-extraction/static-analysis-ast-parsing/expression-parsing/runtime-logic-parsing.md) — Provides runtime parsing of string-based logic statements into executable operations against input data.

### Development Tools & Productivity

- [Fact-Based Rule Triggering](https://awesome-repositories.com/f/development-tools-productivity/fact-based-rule-triggering.md) — Triggers success or failure events by matching rule conditions against runtime data facts. ([source](https://github.com/microsoft/RulesEngine/wiki/Getting-Started))
- [Rule-Driven Action Triggers](https://awesome-repositories.com/f/development-tools-productivity/rule-driven-action-triggers.md) — Automatically runs specific code or chains additional rules after a result is determined. ([source](https://microsoft.github.io/RulesEngine/))

### Scientific & Mathematical Computing

- [Evaluator Logic Extensions](https://awesome-repositories.com/f/scientific-mathematical-computing/evaluator-logic-extensions.md) — Supports registering external classes and methods to perform complex evaluations that exceed standard expression capabilities. ([source](https://github.com/microsoft/RulesEngine/wiki/Getting-Started))
