Deser explores a different architecture for Rust serialization

A concrete example of how a widely adopted abstraction's design constraints can persist, and what it takes to offer a fresh API without simply patching around every edge case.

Logged at IST: 2026-10-05 14:38 IST

What it is: Armin Ronacher’s introduction to Deser, a new Rust serialization library inspired by years of using Serde.

Gist: Ronacher illustrates three awkward interactions in Serde: arbitrary-precision numbers represented through an in-band map signal, integer keys losing their type through flatten, and custom deserializers that do not compose cleanly through wrappers such as Option. These are consequences of a stable design and ecosystem, not simple bugs to patch. Deser experiments with a different architecture while aiming to keep the familiar derive-oriented experience and support multiple formats and transformations.

Why it matters: Replacing a foundational library is rarely justified by one missing feature. This write-up makes the case through interacting edge cases, then frames the alternative as an architectural experiment. It is also a reminder that compatibility and stability can preserve limitations long after their costs are understood.