rust-rule-engine 1.20.1

A blazing-fast Rust rule engine with RETE algorithm, backward chaining inference, and GRL (Grule Rule Language) syntax. Features: forward/backward chaining, pattern matching, unification, O(1) rule indexing, TMS, expression evaluation, method calls, streaming with Redis state backend, watermarking, and custom functions. Production-ready for business rules, expert systems, real-time stream processing, and decision automation.
Documentation
/// Agenda and activation group management
pub mod agenda;
/// Advanced analytics and performance monitoring
pub mod analytics;
/// Shared condition evaluation logic for both forward and backward chaining
pub mod condition_evaluator;
pub mod coverage; // Adding coverage module
/// Dependency analysis for safe parallel execution
pub mod dependency;
/// Main rule execution engine
#[allow(clippy::module_inception)]
pub mod engine;
/// Facts (working memory) for rule execution
pub mod facts;
/// Knowledge base for rule storage and management
pub mod knowledge_base;
/// Module system for namespace isolation (CLIPS-inspired defmodule)
pub mod module;
/// Parallel rule execution engine
pub mod parallel;
/// Pattern matching for complex conditions
pub mod pattern_matcher;
/// Plugin system for extensibility
pub mod plugin;
/// Rule execution engine and core functionality
pub mod rule;
/// Rule templates for dynamic rule generation
pub mod template;
/// Workflow engine for rule chaining and sequential execution
pub mod workflow;

// Re-export main components for easy access
pub use agenda::{ActivationGroupManager, AgendaManager};
pub use analytics::{AnalyticsConfig, ExecutionEvent, OverallStats, RuleAnalytics, RuleMetrics};
pub use condition_evaluator::ConditionEvaluator;
pub use dependency::{
    DependencyAnalysisResult, DependencyAnalyzer, ExecutionGroup, ExecutionMode, ExecutionStrategy,
};
pub use engine::{EngineConfig, GruleExecutionResult, RustRuleEngine};
pub use parallel::{ParallelConfig, ParallelExecutionResult, ParallelRuleEngine};
pub use template::{ParameterType, RuleTemplate, TemplateManager};
pub use workflow::{
    ScheduledTask, WorkflowEngine, WorkflowResult, WorkflowState, WorkflowStats, WorkflowStatus,
};