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 |
---|