CRUBAL

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.

  1. Reader: the text and JSON forms, both ways, without losing a pair.
  2. Dictionary: facets and classes, aliases, value checks.
  3. Rules: strengths, fills and derivations, contradiction checks.
  4. Store: sources and signed logs, intake with raw bytes, migrations.
  5. Exchange: contracts, offer and take, signatures across owners.
  6. 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.