#serialization #no-alloc

no-std serde_core

Serde traits only, with no support for derive – use the serde crate instead

9 stable releases

1.0.228 Sep 27, 2025
1.0.227 Sep 25, 2025

#1796 in Encoding

Download history 4185978/week @ 2025-10-26 4234954/week @ 2025-11-02 4261149/week @ 2025-11-09 4548891/week @ 2025-11-16 4342926/week @ 2025-11-23 4866524/week @ 2025-11-30 5509134/week @ 2025-12-07 5989755/week @ 2025-12-14 3530100/week @ 2025-12-21 3323546/week @ 2025-12-28 5858831/week @ 2026-01-04 6751423/week @ 2026-01-11 6899844/week @ 2026-01-18 7219943/week @ 2026-01-25 7818707/week @ 2026-02-01 7655822/week @ 2026-02-08

30,133,163 downloads per month
Used in 119,438 crates (148 directly)

MIT/Apache

385KB
7.5K SLoC

The serde_core crate contains Serde's trait definitions with no support for #[derive()].

In crates that derive an implementation of Serialize or Deserialize, you must depend on the serde crate, not serde_core.

In crates that handwrite implementations of Serde traits, or only use them as trait bounds, depending on serde_core is permitted. But serde re-exports all of these traits and can be used for this use case too. If in doubt, disregard serde_core and always use serde.

Crates that depend on serde_core instead of serde are able to compile in parallel with serde_derive even when serde's "derive" feature is turned on, as shown in the following build timings.


When serde_json depends on serde

When serde_json depends on serde_core

Dependencies