rust-rule-engine 1.18.26

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
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "rust-rule-engine"
version = "1.18.26"
authors = ["Ton That Vu <ttvuhm@gmail.com>"]
build = false
exclude = [
    "tests/*",
    ".github/*",
    "benchmarks/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "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 = "https://docs.rs/rust-rule-engine"
readme = "README.md"
keywords = [
    "rules",
    "engine",
    "grl",
    "ai",
    "ml",
]
categories = [
    "algorithms",
    "data-structures",
    "science",
]
license = "MIT"
repository = "https://github.com/KSD-CO/rust-rule-engine"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
backward-chaining = []
default = []
streaming = ["tokio"]
streaming-redis = [
    "streaming",
    "redis",
]

[lib]
name = "rust_rule_engine"
path = "src/lib.rs"

[[bin]]
name = "memory_usage_benchmark"
path = "benches/memory_usage_benchmark.rs"

[[bin]]
name = "rete_1m_rules_benchmark"
path = "benches/rete_1m_rules_benchmark.rs"

[[bin]]
name = "rust-rule-engine"
path = "src/main.rs"

[[example]]
name = "accumulate_grl_demo"
path = "examples/03-advanced-features/accumulate_grl_demo.rs"

[[example]]
name = "action_handlers_grl_demo"
path = "examples/03-advanced-features/action_handlers_grl_demo.rs"

[[example]]
name = "conflict_resolution_demo"
path = "examples/03-advanced-features/conflict_resolution_demo.rs"

[[example]]
name = "ecommerce_approval_demo"
path = "examples/09-backward-chaining/ecommerce_approval_demo.rs"
required-features = ["backward-chaining"]

[[example]]
name = "expression_demo"
path = "examples/01-getting-started/expression_demo.rs"

[[example]]
name = "fraud_detection"
path = "examples/01-getting-started/fraud_detection.rs"

[[example]]
name = "grl_no_loop_demo"
path = "examples/03-advanced-features/grl_no_loop_demo.rs"

[[example]]
name = "grl_query_demo"
path = "examples/09-backward-chaining/grl_query_demo.rs"
required-features = ["backward-chaining"]

[[example]]
name = "grule_demo"
path = "examples/01-getting-started/grule_demo.rs"

[[example]]
name = "medical_diagnosis_demo"
path = "examples/09-backward-chaining/medical_diagnosis_demo.rs"
required-features = ["backward-chaining"]

[[example]]
name = "memory_usage_comparison"
path = "examples/05-performance/memory_usage_comparison.rs"

[[example]]
name = "method_calls_demo"
path = "examples/01-getting-started/method_calls_demo.rs"

[[example]]
name = "parallel_engine_demo"
path = "examples/05-performance/parallel_engine_demo.rs"

[[example]]
name = "phase3_demo"
path = "examples/10-module-system/phase3_demo.rs"

[[example]]
name = "proof_graph_cache_demo"
path = "examples/09-backward-chaining/proof_graph_cache_demo.rs"
required-features = ["backward-chaining"]

[[example]]
name = "quick_engine_comparison"
path = "examples/05-performance/quick_engine_comparison.rs"

[[example]]
name = "rete_deffacts_demo"
path = "examples/02-rete-engine/rete_deffacts_demo.rs"

[[example]]
name = "rete_demo"
path = "examples/02-rete-engine/rete_demo.rs"

[[example]]
name = "rete_grl_demo"
path = "examples/02-rete-engine/rete_grl_demo.rs"

[[example]]
name = "rete_p3_incremental"
path = "examples/07-advanced-rete/rete_p3_incremental.rs"

[[example]]
name = "rete_typed_facts_demo"
path = "examples/02-rete-engine/rete_typed_facts_demo.rs"

[[example]]
name = "rete_ul_drools_style"
path = "examples/07-advanced-rete/rete_ul_drools_style.rs"

[[example]]
name = "rule_templates_demo"
path = "examples/03-advanced-features/rule_templates_demo.rs"

[[example]]
name = "session_window_demo"
path = "examples/session_window_demo.rs"

[[example]]
name = "simple_query_demo"
path = "examples/09-backward-chaining/simple_query_demo.rs"
required-features = ["backward-chaining"]

[[example]]
name = "smart_home_modules"
path = "examples/10-module-system/smart_home_modules.rs"

[[example]]
name = "streaming_with_rules_demo"
path = "examples/03-advanced-features/streaming_with_rules_demo.rs"
required-features = ["streaming"]

[[example]]
name = "tms_demo"
path = "examples/02-rete-engine/tms_demo.rs"

[[bench]]
name = "alpha_indexing_benchmark"
path = "benches/alpha_indexing_benchmark.rs"
harness = false

[[bench]]
name = "backward_chaining_benchmarks"
path = "benches/backward_chaining_benchmarks.rs"
harness = false
required-features = ["backward-chaining"]

[[bench]]
name = "backward_chaining_index_benchmark"
path = "benches/backward_chaining_index_benchmark.rs"
harness = false
required-features = ["backward-chaining"]

[[bench]]
name = "engine_comparison_benchmark"
path = "benches/engine_comparison_benchmark.rs"
harness = false

[[bench]]
name = "memory_usage_benchmark"
path = "benches/memory_usage_benchmark.rs"

[[bench]]
name = "parallel_benchmarks"
path = "benches/parallel_benchmarks.rs"
harness = false

[[bench]]
name = "rete_1m_rules_benchmark"
path = "benches/rete_1m_rules_benchmark.rs"

[[bench]]
name = "rete_optimization_benchmark"
path = "benches/rete_optimization_benchmark.rs"
harness = false

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.log]
version = "0.4"

[dependencies.nom]
version = "7.1"

[dependencies.redis]
version = "0.27"
features = [
    "tokio-comp",
    "connection-manager",
]
optional = true

[dependencies.rexile]
version = "0.4.8"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
version = "1.42"
features = ["full"]
optional = true

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.serde_yaml]
version = "0.9"

[dev-dependencies.tokio]
version = "1.42"
features = ["full"]