Serde
Ranked 2 of 9 serialization formats by recommenders
Rust's default library for converting data to and from formats like JSON, praised for pleasant parsing. Critics mainly cite slow compile times from heavy code generation.
Rust's default library for converting data to and from formats like JSON, praised for pleasant parsing. Critics mainly cite slow compile times from heavy code generation.
38 people gave an opinion
- recommend it
- 22
- criticize it
- 16
- approval share
- 58%
Recommended in 10 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: not recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: not recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 22 people recommend itNeeds 10 or more, met.
- 1.3 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 10 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Derive macros make serialization convenient
“#[derive(Serialize, Deserialize)] to have a highly performant JSON parser & serializer”
Comment from 15 Jan 2026 in “Is Rust faster than C?” “Rust has macros that make serde very convenient, which Gleam doesn't have.”
Comment from 13 Dec 2025 in “I tried Gleam for Advent of Code” “Serde also comes with a bunch of attributes and features to make it easy”
Comment from 24 Mar 2026 in “An Incoherent Rust” - Comment from 3 Jun 2026 in “Elixir v1.20 released: now a gradually typed language”
- Comment from 13 Dec 2025 in “I tried Gleam for Advent of Code”
- Comment from 24 Sep 2026 in “Rails World 2026 Opening Keynote [video]”
Pleasant, top-notch JSON parsing
“Serde-annotated structs are the best serialization/deserialization story anywhere.”
Comment from 10 Sep 2026 in “Rust is tier-1 language at Microsoft” “Serde makes parsing, especially JSON, extremely pleasant.”
Comment from 12 May 2026 in “If AI Writes Your Code, Why Use Python?” “Serialisation with serde is top-notch imo.”
Comment from 29 Sep 2026 in “Rust for C# and .NET developers guide by Microsoft” Easy switching between formats
“thanks to serde it's easy to switch between different serialization formats”
Comment from 28 Dec 2025 in “Benefits of Fullstack Rust” “serde works with JSON (among other formats)”
Comment from 6 Mar 2026 in “Nobody ever got fired for using a struct” Rust's de facto default
“I'm working on a project now that uses YAML for configuration and am parsing it using Rust's serde crate”
Comment from 28 Aug 2026 in “That's a Lot of YAML” “Rust's defacto default is serde”
Comment from 13 May 2026 in “Cost of enum-to-string: C++26 reflection vs. the old ways”
What people warn about
Each mark is one comment
Slow compile times from code generation
“the Rust ecosystem makes use of intense amounts of code generation features, like serdes, which generates a huge amount of invisible code”
Comment from 27 May 2026 in “Performance of Rust Language [pdf]” “bloated libraries like serde that insist on generating code which massively slows down compilation”
Comment from 30 Apr 2026 in “Functional Programmers need to take a look at Zig” “I love Serde to death, but the compile times are getting absolutely absurd.”
Comment from 24 Nov 2025 in “The Rust Performance Book (2020)” - Comment from 25 Nov 2025 in “APT Rust requirement raises questions”
- Comment from 27 May 2026 in “Performance of Rust Language [pdf]”
- Comment from 5 Sep 2026 in “The Rust React Compiler is now native in Vite”
Heavy dependency tree and bloat
“It's mind boggling when a simple Rust app pulls in Serde and with it half a black hole worth of packages”
Comment from 31 Mar 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan” “No need to include tokio, serde and hundred other cargos which constantly break things.”
Comment from 25 Apr 2026 in “Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain” “is near-universal but has some very vocal opponents because it's such a heavy library”
Comment from 24 Nov 2025 in “Shai-Hulud Returns: Over 300 NPM Packages Infected” - Comment from 24 Nov 2025 in “Several core problems with Rust”
- Comment from 20 Jan 2026 in “Profession by Isaac Asimov”
Verbose, slow visitor-based design
“Deserializers use a ridiculously verbose visitor pattern that's completely unnecessary in a language with move semantics”
Comment from 12 Feb 2026 in “D Programming Language” “presents a large serialization overhead due to its visitor pattern”
Comment from 6 Feb 2026 in “Rust's Serde Large Overhead” “noticed the approach used by serde wasn't great for performance”
Comment from 20 Mar 2026 in “We rewrote our Rust WASM Parser in TypeScript – and it got 3x Faster” Pre-compiled binary blobs shipped
“I remember the outrage, when serde (i think it was) wanted to ship parts as pre-compiled binaries for build performance reasons”
Comment from 8 May 2026 in “GNU IFUNC is the real culprit behind CVE-2024-3094” “the old story of the serde maintainer shipping a binary blob just because”
Comment from 16 Sep 2026 in “Ubuntu 26.10 completes transition to Rust-based coreutils”
Other serialization formats people recommend
The four most recommended other serialization formats, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Protocol Buffers (protobuf) | 77 | 66 | 54% | 10 | 10 yrs3 owners | — |
| SerdeThis page | 22 | 16 | 58% | 10 | — | — |
| Cap'n Proto | 20 | 5 | 80% | 7 | — | Approved |
| Protobuf | 19 | 25 | 43% | 8 | — | — |
| FlatBuffers | 16 | 4 | 80% | 5 | — | Approved |
What people said
40 of the 49 comments that mention it, newest first. Each links to the original comment.
“I should just use reqwest and serde to do everything with Stripe's API manually”
“Serialisation with serde is top-notch imo.”
“Derive macros and Serde are great.”
“the old story of the serde maintainer shipping a binary blob just because”
“Serde-annotated structs are the best serialization/deserialization story anywhere.”
“Serde, proc macros, it's all so slow.”
“I'm working on a project now that uses YAML for configuration and am parsing it using Rust's serde crate”
“uses a clever technique with traits to allow compile time specialisation and optimisation”
“in Rust you derive serde and in Elixir it's just a function call away”
“its derive macros are heavy and add some seconds of hickup”
“the Rust ecosystem makes use of intense amounts of code generation features, like serdes, which generates a huge amount of invisible code”
“Rust's defacto default is serde”
“Serde makes parsing, especially JSON, extremely pleasant.”
“I remember the outrage, when serde (i think it was) wanted to ship parts as pre-compiled binaries for build performance reasons”
“bloated libraries like serde that insist on generating code which massively slows down compilation”
“No need to include tokio, serde and hundred other cargos which constantly break things.”
“Rust is especially vulnerable witb Serde included in everything and maintained by 1 perso”
“It's mind boggling when a simple Rust app pulls in Serde and with it half a black hole worth of packages”
“serde is not perfect but pretty decent, but IMHO the proc macros it provides need some love/a v2 rewrite”
“Serde also comes with a bunch of attributes and features to make it easy”
“I am effectively locked in to using crates that implement serde traits”
“noticed the approach used by serde wasn't great for performance”
“serde works with JSON (among other formats)”
“I usually use it with JSON.”
“The Rust ecosystem makes this almost painless with serde + custom deserializers.”
“Deserializers use a ridiculously verbose visitor pattern that's completely unnecessary in a language with move semantics”
“serde vs crossing your fingers and hoping user input is well-formed”
“presents a large serialization overhead due to its visitor pattern”
“pulling in 42M of dependencies”
“#[derive(Serialize, Deserialize)] to have a highly performant JSON parser & serializer”
“thanks to serde it's easy to switch between different serialization formats”
“It really saves a lot of time if you don't have to use swagger or similar tools.”
“Rust has macros that make serde very convenient, which Gleam doesn't have.”
“something similar to serde in Rust, where you simply tag your type”
“allow you to validate nullability constraints at parse-time”
“My biggest gripe with Rust is compile times with Serde and proc macros.”
“I love Serde to death, but the compile times are getting absolutely absurd.”
“is near-universal but has some very vocal opponents because it's such a heavy library”
“five versions of serde in one build”
“In rust, any published crate automatically has a docs.rs/cratename link.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.