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
# Module Structure Comparison

## ❌ Old Structure (Confusing)
```
src/
  engine/
    engine.rs           ← Main forward engine
    backward/
      engine.rs         ← Backward engine (CONFUSING!)
      goal.rs
      search.rs
      query.rs
```

**Problem:** Two `engine.rs` files cause confusion:
- `engine/engine.rs` vs `engine/backward/engine.rs`
- Unclear which "engine" you're referring to
- IDE navigation gets messy

---

## ✅ New Structure (Clean)
```
src/
  engine/
    engine.rs           ← Forward chaining engine
    parallel.rs
    dependency.rs
    knowledge_base.rs
    facts.rs
    rule.rs
    ...
  
  backward/             ← Top-level module (peer to engine)
    backward_engine.rs  ← Backward chaining engine (clear name)
    goal.rs
    search.rs
    query.rs
    mod.rs
```

**Benefits:**
- Clear separation: `engine` (forward) vs `backward` (goal-driven)
- No naming conflicts: `engine.rs` vs `backward_engine.rs`
- Logical grouping: backward chaining is a different paradigm
- Easy to disable: Feature flag applies to entire `backward` module
- Better imports: `use rust_rule_engine::backward::*` (not `engine::backward`)

---

## Usage Comparison

### Old (Confusing)
```rust
use rust_rule_engine::engine::RustRuleEngine;  // Forward engine
use rust_rule_engine::engine::backward::BackwardEngine;  // Backward engine (??)
```

### New (Clear)
```rust
use rust_rule_engine::engine::RustRuleEngine;  // Forward engine
use rust_rule_engine::backward::BackwardEngine;  // Backward engine ✓
```

---

## Implementation Status

### ✅ Completed
- [x] Moved `src/engine/backward/``src/backward/`
- [x] Renamed `engine.rs``backward_engine.rs`
- [x] Updated `src/lib.rs` to expose `backward` at top level
- [x] Updated `src/engine/mod.rs` (removed backward submodule)
- [x] Updated `src/backward/mod.rs` (use `backward_engine`)
- [x] Updated examples to use correct import path
- [x] Updated design doc with new structure

### 📋 Files Changed
1. `src/lib.rs` - Added `pub mod backward`
2. `src/engine/mod.rs` - Removed backward submodule
3. `src/backward/mod.rs` - Updated module exports
4. `src/backward/backward_engine.rs` - Renamed from `engine.rs`
5. `examples/09-backward-chaining/simple_query_demo.rs` - Fixed imports
6. `docs/BACKWARD_CHAINING_DESIGN.md` - Updated structure diagram

---

## Next Steps

1. ✅ Structure refactored
2. ⬜ Add `hybrid.rs` for forward+backward integration
3. ⬜ Add `dependency.rs` for backward dependency graph
4. ⬜ Complete tests for all modules
5. ⬜ Add more examples