Skip to content

fabiolune/logic-engine

Repository files navigation

This documentation is in line with the active development, hence should be considered work in progress. To check the documentation for the latest stable version please visit https://fabiolune.github.io/logic-engine/

Logic Engine

GitHub CI Quality Gate Status codecov NuGet NuGet Mutation testing badge

The logic-engine is a lightweight .NET library designed to facilitate dynamic and flexible logic systems. It allows developers to define a generic set of rules that can be compiled into executable code, enabling modifications to business logic without altering the system's core. By leveraging functional programming principles (thanks to Franco Melandri's Tiny FP), it offers tools to evaluate whether an entity satisfies specific conditions and, if not, identify the reasons for failure. Key components include Rules, which are basic logical constructs, RulesSets for combined conditions using logical AND, and RulesCatalog for broader combinations using logical OR. It supports a wide range of operators, from comparisons (e.g., equality, greater-than, etc.) to more complex string and enumerable operations. The library aims to simplify logic handling while maintaining flexibility and clarity in implementation.