NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #2376 most downloaded on NuGet
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
Last release 3 months ago
03 Jul 2026
Release timing varies
gaps range from 9 days to 13 months
Nearly every release is documented
notes for 27 of 29 stable releases
1 version withdrawn
withdrawn after publishing
127 years old
30 releases · first in 1900
Stable release rolling up everything from 6.0.1-preview.1 through 6.0.1-preview.3 — no additional code changes beyond preview.3. See per-preview secti
Stable release rolling up everything from 6.0.1-preview.1 through 6.0.1-preview.3 — no additional code changes beyond preview.3. See per-preview sections below for the full delta from 6.0.0.
RuleExpressionParser — 100×–1900× speedups on paths not served by RulesCache (#673, #727).CustomTypeProvider — ~6.6× faster registration on realistic large workflows (#739, #740).ReSettings.EnableParallelRuleCompilation for further warmup gains on very large (10k+ rule) workflows (#741, #744).IRulesEngine.ExecuteAllRulesAsync overload accepting a CancellationToken with cooperative cancellation between rules and before each action (#609).ReSettings.AutoExecuteActions (default true) — set to false to evaluate rules without automatically running their OnSuccess/OnFailure actions (#596).ExecuteActionWorkflowAsync error message population (#519), ActionContext null guard (#576), deep dotted ErrorMessage interpolation (#696), STJ JsonElement unwrap for ExpandoObject inputs (#668), and clear errors for duplicate param names or input/global collisions (#743).One column per quarter.
[Bug Fix] Handling of Automatic Type Registration by Purunjay Bhal (@pbhal) in #675
Full Changelog: v5.0.6...v6.0.0
[Bug Fix] : Methods on custom objects not available due to System.Linq.Dynamic.Core update by Purunjay Bhal (@pbhal) in #661
Full Changelog: v5.0.5...v5.0.6
Users will need to pass CustomTypes depending on if the rules framed are calling methods on the object types being passed as input to the engine.
Users/abbasc52/dotnet8 by Abbas Cyclewala (@abbasc52) in #571
Full Changelog: v5.0.3...v5.0.4
Full Changelog: v5.0.3...v5.0.
Nothing published for this version
Update README.md by Ayhan Döşlü (@ayhandoslu) in #536
Full Changelog: v5.0.2...v5.0.3
Bump coverallsapp/github-action from 1.1.3 to 2.2.1 by Dependabot (@dependabot) in #504
Full Changelog: v5.0.1...v5.0.2
Bump dotnet-reportgenerator-globaltool from 5.1.10 to 5.1.23 by Dependabot (@dependabot) in #498
Full Changelog: v5.0.0...v5.0.1
Bump actions/setup-dotnet from 2 to 3 by Dependabot (@dependabot) in #396
Full Changelog: v4.0.0...v5.0.0
Abbasc52/combined fixes by Abbas Cyclewala (@abbasc52) in #341
Full Changelog: v3.5.0...v4.0.0
- RulesEngine(string[] jsonConfig, ILogger logger = null, ReSettings reSettings = null)
+ RulesEngine(string[] jsonConfig, ReSettings reSettings = null)
- RulesEngine(Workflow[] Workflows, ILogger logger = null, ReSettings reSettings = null)
+ RulesEngine(Workflow[] Workflows, ReSettings reSettings = null)
- RulesEngine(ILogger logger = null, ReSettings reSettings = null)
+ RulesEngine(ReSettings reSettings = null)
RuleResultTree
ToResultTreeMessages() has been removed from RuleResultTree modelGetMessages() has been removed from RuleResultTree modelRuleEvaluatedParams has been removed from RuleResultTree model, Please use Inputs insteadWorkflow
WorkflowRulesToInject has been removed, Please use WorkflowsToInject insteadErrorType has been removed from RuleResettings
EnableLocalParams has been removed from ReSettings, Please use EnableScopedParams insteadDeprecate Newtonsoft.Json to System.Text.Json by Alex Reich (@alexreich) in #191
Full Changelog: v3.3.0...v3.5.0
EvaluateRule action now support custom inputs and filtered inputsContainsWorkflow method in RulesEngine (by @okolobaxa)Made RulesEngine Strong Name and Authenticode signed
Made RulesEngine Strong Name and Authenticode signed
Renamed few models to streamline names (by @alexrich)
WorkflowRules is renamed to WorkflowWorkflowRulesToInject is renamed to WorkflowsToInjectRuleAction is renamed to RuleActionsNote: The old models are still supported but will be removed with version 4.0.0
Added support for actions in nested rules
Breaking Change:
Dictionary<ActionTriggerType, ActionInfo> to RuleActions
Added AddOrUpdateWorkflow method to update workflows atomically (by @AshishPrasad)
Breaking Change:
AddWorkflow now throws exception if you try to add a workflow which already exists.
Use AddOrUpdateWorkflow to update existing workflowNothing published for this version
Added globalParams feature which can be applied to all rules
GetAllRegisteredWorkflow to RulesEngine to return all registered workflowsFixed LocalParams cache not getting cleaned up when RemoveWorkflows and ClearWorkflows are called
Moved ActionResult and ActionRuleResult under RulesEngine.Models namespace
Added support for Actions. More details on actions wiki
ExecuteRule method has been renamed to ExecuteAllRulesAsyncInput field in RuleResultTree has been changed to Inputs which returns all the the inputs as Dictionary of name and value pairAdded Properties field to Rule to allow custom fields to Rule
Properties field to Rule to allow custom fields to RuleAdded exception data properties to identify RuleName.
Optional parameter for rethrow exception on failure of expression compilation.
Fixed binary expression requirement. Now any expression will work as long as it evalutes to boolean.
Fixed exception thrown when errormessage field is null
Adding local param support to make expression authroing more intuitive.
Interface simplified by removing redundant parameters in the IRulesEngine.
Cache system added so that rules compilation is stored and thus made more efficient.
Exceptions handling scenario in the case a rule execution throws an exception
### Added - The first version of the NuGet
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →