rust-runes 0.1.0

A rule engine compatible with Grule's rule language (GRL) and execution model
Documentation
# Introduction

rust-runes is a rule engine for embedding business logic in Rust applications. It is
compatible with [Grule](https://github.com/hyperjumptech/grule-rule-engine)'s rule
language (GRL) and execution model: Grule's `.grl` files load unchanged and fire the same
rules.

Rules state what to do when a condition holds:

```grl
rule LongRide "Long rides get a flat rate" salience 10 {
    when
        Ride.Distance > 5000 && !Ride.Priced
    then
        Ride.NetAmount = 143.32;
        Ride.Priced = true;
}
```

Your application keeps the rules outside its code, hands the engine some facts (usually
its own serde types), and the engine runs the rules until none applies.

This guide covers:

- [Getting started]getting-started.md: loading rules and running them against your types.
- [Facts]facts.md: how Rust values become facts and back.
- [The rule language]language.md and the [built-in functions]functions.md.
- [The execution model]execution.md: which rules fire, in what order, and how often.
- [Your own functions and methods]extending.md, callable from rules.
- [Migrating from Grule]migrating.md: the Go API side by side, and the differences.
- [Performance]performance.md: benchmarks against Grule's.

The [API documentation](api.md) describes every type and method.

rust-runes is an independent implementation; it is not affiliated with the Grule project.