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
-
Determinism over flexibility — There is exactly one valid binary encoding for any given source object. No optional whitespace, no alternate encodings, no ambiguity.
-
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.
-
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.
-
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
| Format | Deterministic | Schema-required | Binary | Fingerprint |
|---|---|---|---|---|
| JSON | No | No | No | No |
| Protocol Buffers | No* | Yes | Yes | No |
| MessagePack | No | No | Yes | No |
| CBOR | No | No | Yes | No |
| LODE/Vein | Yes | Yes | Yes | Yes |
* Protocol Buffers has a canonical encoding mode but it is not the default.