Skip to Content
DocsLanguageLanguage Description

Language Description

LODE is not a general-purpose programming language. It is a schema definition language with a paired binary format (Vein) and a deterministic hashing discipline. LODE sits at the boundary between data description and serialization protocol.

Design Goals

  1. Determinism over flexibility — There is exactly one valid binary encoding for any given source object. No optional whitespace, no alternate encodings, no ambiguity.

  2. Verification as a first-class operation — Fingerprinting and verification are not add-ons. They are core language operations with the same status as encoding and decoding.

  3. Forward compatibility — Schemas evolve. A consumer built against v1 must be able to read a v2 payload without crashing. Unknown fields are skipped, never rejected.

  4. Minimal surface area — Four types, five operations, one wire format. LODE intentionally does not support nested structures, unions, enums, or computed fields.

What LODE Is Not

  • Not a query language — LODE does not select, filter, or transform data
  • Not a transport protocol — LODE encodes payloads; how they move over the wire is your concern
  • Not a database schema — LODE schemas describe single objects, not tables or relations
  • Not Turing-complete — There are no loops, conditionals, or functions

Relationship to Other Formats

FormatDeterministicSchema-requiredBinaryFingerprint
JSONNoNoNoNo
Protocol BuffersNo*YesYesNo
MessagePackNoNoYesNo
CBORNoNoYesNo
LODE/VeinYesYesYesYes

* Protocol Buffers has a canonical encoding mode but it is not the default.

Last updated on