Files
serde/serde_core
pezkuwichain 679af0fb4b Fix wasm32v1-none target compilation with Cargo feature unification
When building for wasm32v1-none with Cargo, the 'std' feature gets
unified across the dependency graph, meaning serde_core sees
feature="std" even on a no_std target. This caused compilation failures
because the crate tried to use std:: imports.

This commit fixes the issue by checking target_os = "none" in addition
to the std feature flag:
- lib.rs: Force no_std when target_os = "none"
- crate_root.rs: Use core/alloc instead of std on target_os = "none"
- All std-only cfg blocks now include not(target_os = "none")
- Add explicit prelude imports for wasm32v1-none compatibility
2026-01-09 15:36:51 +03:00
..
2025-09-27 09:51:07 -07:00
2025-06-06 11:57:32 +02:00
2025-06-06 11:57:32 +02:00

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