This is a pure-Elixir forward-chaining rule engine based on the classic Rete algorithm.
It's a port of the Ruby library of the same name. It aims to keep the public API close enough for rules to be easily portable, where their respective languages align.
The Rete implementation in this library largely follows the outline presented in [Doorenbos, 1995], although by now it is three rewrites away from the original pseudocode.