CRUBAL
A language and engine for data about any kind of thing. Everything is a key and a value: records are pairs, a facet's definition is pairs about a key, and rules, contracts, views and packages are pairs too.
product: P-1 [origin: declared, via: L-1]
crubal:wears: OpticalDisc
title: National Lampoon's Christmas Vacation
format: DVD
runtime: 97min [origin: observed, via: L-7]
videoCodec: _
hdrFormats: -
genres: Comedy, Holiday
unit: U-1 of P-1
condition: VG
price: 12.50USD
Facets
What a key means: type, how many values, choices, units, other names, version.
Rules
What must, should or probably is true, and what follows. Pure: they decide, never act.
Provenance
Every value carries where it came from, in hash-linked, signed logs. No global ledger.
Contracts
The borders where values cross: systems, people, other owners. Ten systems need ten maps.
Conformance
An implementation claims a level, and proves it by passing that level's folders of the test corpus. The reference implementation passes all of them.
- Reader: the text and JSON forms, both ways, without losing a pair.
- Dictionary: facets and classes, aliases, value checks.
- Rules: strengths, fills and derivations, contradiction checks.
- Store: sources and signed logs, intake with raw bytes, migrations.
- Exchange: contracts, offer and take, signatures across owners.
- Views: shapes, filters, audiences and roles, stored projections.
Use it
npm install @cruba/crubal
Read the specification, try the playground, or read the source. CRUBAL 2 ยท 2026-10-21
Who's behind it
CRUBAL is an open specification, stewarded by Infinite Token, a development company. The spec, the corpus and the reference implementation are open to anyone to read, implement and build on.