Skip to content

Implementations ​

These implementations of Flat Notation pass the conformance suite at the levels shown. CI checks every row marked "CI" on each change.

LanguagePackageVersionDecoderEncoderExact integersLenientReferencesMessagesChecked
JavaScript, TypeScript@flattype/core 1.14+1.1✓✓✓ ¹✓✓✓CI
Pythonflattype 1.14+1.1✓✓✓✓✓✓CI

Versions 1.13 of both packages implement Flat Notation 1.0.

¹ With decode(text, { bigint: true }). By default, integers beyond 2⁵³ round, as with JSON.parse.

Both also pass the Unpaired surrogates level, and both stream, with createDecoder and flattype.Decoder.

Add yours ​

Wrote an implementation in another language? It can be listed here, whoever maintains it:

  1. Make the suite pass at the levels you want to claim: node conformance/run.mjs -- <your adapter> (see writing a port).
  2. Open an issue with the List my implementation template, and paste the runner's output.

A listed implementation keeps its row while it keeps passing. When the spec gets a new minor version, its row shows the version it was checked against.

Released under the MIT License.