# Rules

**Rules are the cornerstone of processing pipelines.** They contain the logic about how to change, enrich, route, and drop messages.

To avoid the complexities of a complete programming language, leona supports a small rule language to express processing logic. The rule language is intentionally limited to allow for easier understanding, faster learning, and better runtime optimization.

The real work of rules is done in _functions_, which are completely pluggable. Leona already ships with a great number of built-in functions, providing data conversion, string manipulation, data retrieval using [lookup tables](../enrichment/lookup-tables), JSON parsing, and much more.

We expect that special purpose functions will be written and shared by the community, enabling faster innovation and problem-solving than previously possible.

