A declarative language for business rules
Lemma is a pure, declarative and open source programming language for business rules, that is easy to read for non-technical stakeholders. Rules are written in Specs that humans can read and systems can evaluate precisely and deterministically. Lemma validates Rules before they can be evaluated. Errors are impossible: Rules return a value or Veto, and optionally an explanation when you ask for one (--explain / explain: true).
spec pricing 2026-01-01
"""
Applies a tiered discount and VAT to the base price,
effective from 2026-01-01.
"""
data base_price: 100
data is_member: false
data quantity: number
rule discount: 0%
unless quantity >= 10 then 10%
unless quantity >= 50 then 15%
unless is_member then 20%
rule discount_amount: base_price * discount
rule discounted_price: base_price - discount_amount
rule vat: discounted_price * 21%
rule total: discounted_price + vat
Get started
If you have Cargo installed, you can run:
cargo install lemma
If you are using npm:
npm install -g lemma
Precompiled binaries for Linux, macOS, and Windows are included in the npm package automatically. Docker images are also available. See Installation for all options.
Writing your first Spec
Write a .lemma file and run it. The Learn guide walks you through everything from your first Spec to composing Rules across time and registries. You'll be productive in minute.
Documentation
- Learn — guided path from first spec to composing specs
- Reference — operators, types, syntax, CLI, registry, test coverage, benchmarks
- Tools & SDKs — Rust, Elixir, JavaScript/TypeScript, and more
- Community — contributing and publishing specs