[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"]