Light Rule
light-rule is the Rust rule engine for evaluating rule definitions and
executing registered actions.
It is designed to align with the rule.yaml specification while remaining
runtime-neutral. Java services can use yaml-rule; Rust services use this
crate.
Main Types
RuleEngine: evaluates rule conditions and determines action execution.MultiThreadRuleExecutor: executes rules with runtime state.RuntimeState: input/output state passed through rule evaluation.ActionRegistry: registry for action plugins.RuleActionPlugin: trait implemented by Rust action handlers.Rule,RuleCondition,RuleAction,RuleConfig,EndpointConfig: rule model types.
Action Model
Rules reference actions by actionRef. In Rust, actionRef resolves to a
registered RuleActionPlugin; it is not a Java class name. This keeps the rule
format portable across Java and Rust executors.
Usage
#![allow(unused)]
fn main() {
use light_rule::{ActionRegistry, RuleEngine};
let registry = ActionRegistry::default();
let engine = RuleEngine::new(registry);
}
Related Design
See Light-Rule for the rule format and its relationship to workflow assertions and portal rule management.