edn.c: A High-Performance C11 Library for Parsing EDN (Extensible Data Notation) with SIMD Acceleration
By
delaguardo
Front-window bakery material. Catches the eye, delivers the goods.
Summary
This article introduces edn.c, a high-performance EDN (Extensible Data Notation) reader library written in C11 with SIMD acceleration. EDN is described as a richer, more extensible alternative to JSON with additional built-in types like sets, keywords, symbols, and tagged literals. The library emphasizes zero-copy parsing for maximum performance, making it suitable for data-intensive applications. The article explains EDN's features, compares it to JSON, and details the technical implementation approach including SIMD optimizations for parsing speed.
Key quotes
· 5 pulledEDN (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)
Additional built-in types: Sets #{:a :b}, keywords :keyword, symbols my-symbol, characters \newline, lists (1 2 3)
Extensible via tagged literals: #inst '2024-01-01', #uuid '...'—transform data at parse time with custom readers
A fast, zero-copy EDN (Extensible Data Notation) reader written in C11 with SIMD acceleration
You might also wanna read
Duper: A Human-Friendly JSON Extension with Enhanced Features
Duper is a human-friendly extension of JSON that adds quality-of-life improvements, extra data types, and semantic identifiers while maintai
duper.dev.br·7mo agoYAML's Deceptive Simplicity: Why the Data Format Creates More Problems Than It Solves
This article is a critical analysis of YAML as a data format, arguing that despite its goal of being human-friendly, it introduces excessive
Why Average LLM Use Is Likely Destroying Value in Software Development
The author argues that, contrary to prevailing hype, the average use of Large Language Models (LLMs) is likely destroying value rather than
How AI Accelerated Prototyping: From Idea to Tangible in Record Time
The author reflects on how AI has transformed their prototyping workflow. Previously, the biggest bottleneck was the time needed to scaffold
GitLab 19.0 launches with Secrets Manager, agentic workflows, and self-hosted AI models
GitLab 19.0 has been released, positioning itself as an intelligent orchestration platform for DevSecOps. The release includes expanded secr
bit.ly·20h agoCentralizing Error Handling in Rust with Custom AppError Enums
This article discusses the importance of centralizing error handling in Rust applications using a custom AppError enum combined with map_err
