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

‘JSON with superpowers’ goes turbo in C — cheers, confusion, and a Unicode fight

TLDR: EDN.C brings ultra-fast reading of a richer-than-JSON format, using clever chip-level boosts and working even in browsers. Fans cheer the speed and MIT license, while purists argue about Unicode, binary data, and ask for a matching writer, making this both useful and delightfully contentious.

A new C-powered reader for EDN — think “JSON with extra magic” — just dropped, and the dev crowd is buzzing. EDN.C promises blazing speed thanks to SIMD (special chip instructions), zero-copy parsing, and even WebAssembly for the browser crowd. It’s open-source MIT, tested to the hilt, and lives on GitHub. If JSON is the plain vanilla, EDN is the sundae with sprinkles: sets, symbols, comments, and custom tags that transform data as you parse.

The reactions? The speed squad is ecstatic: “SIMD swole” memes everywhere, with one fan calling it “a contender to replace the lexer within jank.” Others are already asking for the sequel — a writer to match the reader. But the thread swerved hard when a purist declared, “better to not use Unicode,” pitched octal prefixes, and claimed ASN.1 (another data format) is superior. Cue eye-rolls and popcorn emojis. Meanwhile, a curious dev asked if EDN’s metadata could mimic HTML attributes, sparking a mini debate over whether data should start wearing HTML clothes. In short: hype meets nitpick. The community loves the speed and the license, but can’t resist arguing about formats, features, and the eternal “do we need this” question.

Key Points

  • EDN.C is a C11 EDN reader focused on speed and zero‑copy parsing, accelerated by SIMD (NEON, SSE4.2) and WebAssembly SIMD128.
  • The library supports macOS, Linux, Windows, and WebAssembly, with C11‑compatible compilers (GCC, Clang, MSVC).
  • It offers a simple API, UTF‑8 handling, arena‑based memory management, zero dependencies, and extensive tests (340+ across 24 suites).
  • Optional, disabled‑by‑default features include Clojure‑style metadata, namespace map syntax, extended characters, text blocks, ratio numbers, extended integers, and numeric underscores.
  • Integration options include linking the static library (libedn.a) or including source directly, with documented build and test workflows.

Hottest takes

A very impressinve implementation with SIMD and WASM! — medv
a contender to replace the lexer within jank — Jeaye
I think it would be better to not use Unicode — zzo38computer
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.