Use serde_core over serde
diff --git a/lib/smol_str/Cargo.toml b/lib/smol_str/Cargo.toml
index e89e0e8..d938e40 100644
--- a/lib/smol_str/Cargo.toml
+++ b/lib/smol_str/Cargo.toml
@@ -12,7 +12,7 @@
 all-features = true
 
 [dependencies]
-serde = { version = "1.0", optional = true, default-features = false }
+serde_core = { version = "1.0.220", optional = true, default-features = false }
 borsh = { version = "1.4.0", optional = true, default-features = false }
 arbitrary = { version = "1.3", optional = true }
 
@@ -23,4 +23,5 @@
 
 [features]
 default = ["std"]
-std = ["serde?/std", "borsh?/std"]
+std = ["serde_core?/std", "borsh?/std"]
+serde = ["dep:serde_core"]
diff --git a/lib/smol_str/src/serde.rs b/lib/smol_str/src/serde.rs
index 05b8fec..4f08b44 100644
--- a/lib/smol_str/src/serde.rs
+++ b/lib/smol_str/src/serde.rs
@@ -2,6 +2,7 @@
 use core::fmt;
 
 use serde::de::{Deserializer, Error, Unexpected, Visitor};
+use serde_core as serde;
 
 use crate::SmolStr;