-
Notifications
You must be signed in to change notification settings - Fork 18
Rationale
Fressian is an extensible binary data notation. Fressian is used by Datomic and other applications as a data transfer format. This spec describes Fressian in isolation from those and other specific use cases, to help facilitate implementation of readers and writers in other languages, and for other uses.
Fressian supports a rich set of built-in elements, and the definition of extension elements in terms of the others. Users of data formats without such facilities must rely on either convention or context to convey elements not included in the base set. This greatly complicates application logic, betraying the apparent simplicity of the format. Fressian is simple, yet powerful enough to meet the demands of applications without convention or complex context-sensitive logic.
Fressian is a counterpart to edn, and shares many of the same design objects. The key additional objective that separates Fressian from edn is efficiency. To that end Fressian:
- is a binary format
- directly supports platform primitive types
- directly supports platform arrays
- enables inline caching