Tech News
← Back to articles

A fast EDN (Extensible Data Notation) reader written in C11 with SIMD boost

read original related products more articles

A fast, zero-copy EDN (Extensible Data Notation) reader written in C11 with SIMD acceleration.

TL;DR - What is EDN?

EDN (Extensible Data Notation) is a data format similar to JSON, but richer and more extensible. Think of it as "JSON with superpowers":

JSON-like foundation : Maps {:key value} , vectors [1 2 3] , strings, numbers, booleans, null ( nil )

: Maps , vectors , strings, numbers, booleans, null ( ) Additional built-in types : Sets #{:a :b} , keywords :keyword , symbols my-symbol , characters

ewline , lists (1 2 3)

: Sets , keywords , symbols , characters , lists Extensible via tagged literals : #inst "2024-01-01" , #uuid "..." —transform data at parse time with custom readers

: , —transform data at parse time with custom readers Human-friendly : Comments, flexible whitespace, designed to be readable and writable by both humans and programs

: Comments, flexible whitespace, designed to be readable and writable by both humans and programs Language-agnostic: Originally from Clojure, but useful anywhere you need rich, extensible data interchange

Why EDN over JSON? More expressive types (keywords, symbols, sets), native extensibility through tags (no more {"__type": "Date", "value": "..."} hacks), and better support for configuration files and data interchange in functional programming environments.

... continue reading