diff --git a/Cargo.lock b/Cargo.lock
index 2af0f7e70ef29ab57907b85081c558336ac0f201..7eb46ffc6de187d81fd37edb721773d84c5d5523 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -27,6 +27,12 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
 
+[[package]]
+name = "arrayvec"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a2f58b0bb10c380af2b26e57212856b8c9a59e0925b4c20f4a174a49734eaf7"
+
 [[package]]
 name = "async-attributes"
 version = "1.1.2"
@@ -243,7 +249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f"
 dependencies = [
  "arrayref",
- "arrayvec",
+ "arrayvec 0.5.2",
  "cc",
  "cfg-if 0.1.10",
  "constant_time_eq",
@@ -812,7 +818,7 @@ name = "duniter-dbs"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "arrayvec",
+ "arrayvec 0.7.0",
  "bincode",
  "byteorder",
  "chrono",
diff --git a/bc-reader/Cargo.toml b/bc-reader/Cargo.toml
index d2e09579024c7a67bc54201d6606915e02af690b..bc421b9137303d4f6858d5ee9eb7420ee64d2d36 100644
--- a/bc-reader/Cargo.toml
+++ b/bc-reader/Cargo.toml
@@ -18,4 +18,4 @@ dubp = { version = "0.53.1", features = ["duniter"] }
 resiter = "0.4.0"
 
 [dev-dependencies]
-smallvec = { version = "1.4.0", features = ["serde", "write"] }
+smallvec = { version = "1.6", features = ["serde", "write"] }
diff --git a/dbs/Cargo.toml b/dbs/Cargo.toml
index 6dfe970252e866d740818837d8108f7ab86f0a41..332848dd3f729c9ff242996f0df383f3e8158e6b 100644
--- a/dbs/Cargo.toml
+++ b/dbs/Cargo.toml
@@ -12,7 +12,7 @@ edition = "2018"
 path = "src/lib.rs"
 
 [dependencies]
-arrayvec = "0.5.1"
+arrayvec = "0.7"
 bincode = "1.2.1"
 byteorder = "1.3.4"
 chrono = { version = "0.4.15", optional = true }
@@ -25,7 +25,7 @@ paste = "1.0.2"
 rand = "0.8.3"
 serde = { version = "1.0.105", features = ["derive"] }
 serde_json = "1.0.53"
-smallvec = { version = "1.4.0", features = ["serde", "write"] }
+smallvec = { version = "1.6", features = ["serde", "write"] }
 thiserror = "1.0.20"
 uninit = "0.4.0"
 zerocopy = "0.3.0"
diff --git a/dbs/src/keys/blockstamp.rs b/dbs/src/keys/blockstamp.rs
index 6b4a8df39c85170914561346d9e6b16349b89f44..aa2e23c5ce1edb509d8ba47f0671f5e162242faf 100644
--- a/dbs/src/keys/blockstamp.rs
+++ b/dbs/src/keys/blockstamp.rs
@@ -28,7 +28,7 @@ impl kv_typed::prelude::FromBytes for BlockstampKeyV1 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        let blockstamp_strs: ArrayVec<[&str; 2]> = std::str::from_utf8(bytes)
+        let blockstamp_strs: ArrayVec<&str, 2> = std::str::from_utf8(bytes)
             .map_err(|e| CorruptedBytes(e.to_string()))?
             .split('-')
             .collect();
diff --git a/dbs/src/keys/pubkey_and_sig.rs b/dbs/src/keys/pubkey_and_sig.rs
index 47a14c90c0e2ec5805cd09cc272ba04c5c519d9f..9c6a01091abbe0e1e13cbdf59e26780cf5a03ec7 100644
--- a/dbs/src/keys/pubkey_and_sig.rs
+++ b/dbs/src/keys/pubkey_and_sig.rs
@@ -42,7 +42,7 @@ impl kv_typed::prelude::FromBytes for PubKeyAndSigV1 {
         if raw_str == "ALL" {
             Ok(PubKeyAndSigV1::all())
         } else {
-            let array_str: ArrayVec<[&str; 2]> = raw_str.split(':').collect();
+            let array_str: ArrayVec<&str, 2> = raw_str.split(':').collect();
             let pubkey =
                 PublicKey::from_base58(array_str[0]).map_err(|e| CorruptedBytes(e.to_string()))?;
             let sig =
diff --git a/dbs/src/keys/source_key.rs b/dbs/src/keys/source_key.rs
index accb5c9a972212a9f767102bdcfc83a1c724b7ff..fbdb1d6ed55a6c9b51ec0a842b4fc752b7f52bff 100644
--- a/dbs/src/keys/source_key.rs
+++ b/dbs/src/keys/source_key.rs
@@ -47,7 +47,7 @@ impl kv_typed::prelude::FromBytes for SourceKeyV1 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        let strs: ArrayVec<[&str; 3]> = std::str::from_utf8(bytes)
+        let strs: ArrayVec<&str, 3> = std::str::from_utf8(bytes)
             .map_err(|e| CorruptedBytes(e.to_string()))?
             .split('-')
             .collect();
diff --git a/dbs/src/keys/uid.rs b/dbs/src/keys/uid.rs
index a5e4bd7dde0f5cb8642dbb2987a4d10b9db8feae..968d7e877ff929f66e2a755aab01fac6a075b6d6 100644
--- a/dbs/src/keys/uid.rs
+++ b/dbs/src/keys/uid.rs
@@ -18,7 +18,7 @@ use crate::*;
 const USERNAME_MAX_LEN: usize = 100;
 
 #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, PartialOrd)]
-pub struct UidKeyV1(pub ArrayString<[u8; USERNAME_MAX_LEN]>);
+pub struct UidKeyV1(pub ArrayString<USERNAME_MAX_LEN>);
 
 impl AsBytes for UidKeyV1 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
@@ -32,7 +32,7 @@ impl kv_typed::prelude::FromBytes for UidKeyV1 {
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
         let uid_str = std::str::from_utf8(bytes).map_err(|e| CorruptedBytes(e.to_string()))?;
         Ok(Self(
-            ArrayString::<[u8; USERNAME_MAX_LEN]>::from_str(uid_str)
+            ArrayString::<USERNAME_MAX_LEN>::from_str(uid_str)
                 .map_err(|e| CorruptedBytes(e.to_string()))?,
         ))
     }
@@ -42,9 +42,7 @@ impl FromStr for UidKeyV1 {
     type Err = arrayvec::CapacityError;
 
     fn from_str(source: &str) -> std::result::Result<Self, Self::Err> {
-        Ok(UidKeyV1(ArrayString::<[u8; USERNAME_MAX_LEN]>::from_str(
-            source,
-        )?))
+        Ok(UidKeyV1(ArrayString::<USERNAME_MAX_LEN>::from_str(source)?))
     }
 }
 
diff --git a/dbs/src/keys/wallet_conditions.rs b/dbs/src/keys/wallet_conditions.rs
index 56af52a2a82b95555acf4934bff7743badcd56bb..d7a8cb7a63200506525861d9ddac664a1e5e1c33 100644
--- a/dbs/src/keys/wallet_conditions.rs
+++ b/dbs/src/keys/wallet_conditions.rs
@@ -18,7 +18,7 @@ use crate::*;
 const CONDITIONS_MAX_LEN: usize = 256;
 
 #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, PartialOrd)]
-pub struct WalletConditionsV1(pub ArrayString<[u8; CONDITIONS_MAX_LEN]>);
+pub struct WalletConditionsV1(pub ArrayString<CONDITIONS_MAX_LEN>);
 
 impl AsBytes for WalletConditionsV1 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
@@ -32,7 +32,7 @@ impl kv_typed::prelude::FromBytes for WalletConditionsV1 {
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
         let uid_str = std::str::from_utf8(bytes).map_err(|e| CorruptedBytes(e.to_string()))?;
         Ok(Self(
-            ArrayString::<[u8; CONDITIONS_MAX_LEN]>::from_str(uid_str)
+            ArrayString::<CONDITIONS_MAX_LEN>::from_str(uid_str)
                 .map_err(|e| CorruptedBytes(e.to_string()))?,
         ))
     }
@@ -43,7 +43,7 @@ impl FromStr for WalletConditionsV1 {
 
     fn from_str(source: &str) -> std::result::Result<Self, Self::Err> {
         Ok(WalletConditionsV1(
-            ArrayString::<[u8; CONDITIONS_MAX_LEN]>::from_str(source)?,
+            ArrayString::<CONDITIONS_MAX_LEN>::from_str(source)?,
         ))
     }
 }
@@ -79,7 +79,9 @@ impl WalletConditionsV2 {
 impl AsBytes for WalletConditionsV2 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
         let mut buffer = SmallVec::<[u8; 256]>::new();
-        bincode::serialize_into(&mut buffer, &self.0).unwrap_or_else(|_| unreachable!());
+        bincode_db()
+            .serialize_into(&mut buffer, &self.0)
+            .unwrap_or_else(|_| unreachable!());
         f(buffer.as_ref())
     }
 }
@@ -88,7 +90,7 @@ impl kv_typed::prelude::FromBytes for WalletConditionsV2 {
     type Err = bincode::Error;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        Ok(Self(bincode::deserialize(bytes)?))
+        Ok(Self(bincode_db().deserialize(bytes)?))
     }
 }
 
diff --git a/dbs/src/lib.rs b/dbs/src/lib.rs
index 63d8a82ad9b4898917bd8ab75e75c18f5ec0bdfb..863221c4167376e342274d6c93b12175940f4b6c 100644
--- a/dbs/src/lib.rs
+++ b/dbs/src/lib.rs
@@ -89,6 +89,7 @@ pub use values::wallet_script_with_sa::WalletScriptWithSourceAmountV1Db;
 
 // Crate imports
 pub(crate) use arrayvec::{ArrayString, ArrayVec};
+pub(crate) use bincode::Options;
 #[cfg(feature = "explorer")]
 use chrono::NaiveDateTime;
 pub(crate) use dubp::common::crypto::bases::b58::ToBase58 as _;
@@ -142,3 +143,8 @@ impl SharedDbs<Mem> {
         })
     }
 }
+
+// Bincode db configuration
+pub fn bincode_db() -> impl bincode::Options {
+    bincode::options()
+}
diff --git a/dbs/src/values/block_db.rs b/dbs/src/values/block_db.rs
index c288cda97974ec5f519938f1b5bc76a813f8cdd7..2c6c508cb06c7d6f60f71948278ed8b9c90825a1 100644
--- a/dbs/src/values/block_db.rs
+++ b/dbs/src/values/block_db.rs
@@ -122,7 +122,9 @@ pub struct BlockDbV2(pub dubp::block::DubpBlockV10);
 
 impl AsBytes for BlockDbV2 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        let bytes = bincode::serialize(self).unwrap_or_else(|_| unreachable!());
+        let bytes = bincode_db()
+            .serialize(self)
+            .unwrap_or_else(|_| unreachable!());
         f(bytes.as_ref())
     }
 }
@@ -131,7 +133,9 @@ impl kv_typed::prelude::FromBytes for BlockDbV2 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(&bytes).map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
+        bincode_db()
+            .deserialize(&bytes)
+            .map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
     }
 }
 
diff --git a/dbs/src/values/block_meta.rs b/dbs/src/values/block_meta.rs
index 949a644d963971933e917f129aa9adb09dcd9f30..92eaee0934ac0f66b4f6988976043d4ac9a97ff3 100644
--- a/dbs/src/values/block_meta.rs
+++ b/dbs/src/values/block_meta.rs
@@ -17,7 +17,7 @@ use dubp::block::DubpBlockV10;
 
 use crate::*;
 
-const BLOCK_META_SERIALIZED_SIZE: usize = 323;
+const BLOCK_META_MAX_SERIALIZED_SIZE: usize = 323;
 
 #[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
 pub struct BlockMetaV2 {
@@ -52,8 +52,10 @@ impl BlockMetaV2 {
 
 impl AsBytes for BlockMetaV2 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        let mut buffer = [0u8; BLOCK_META_SERIALIZED_SIZE];
-        bincode::serialize_into(&mut buffer[..], self).unwrap_or_else(|_| unreachable!());
+        let mut buffer = ArrayVec::<u8, BLOCK_META_MAX_SERIALIZED_SIZE>::new();
+        bincode_db()
+            .serialize_into(&mut buffer, self)
+            .unwrap_or_else(|_| unreachable!());
         f(buffer.as_ref())
     }
 }
@@ -62,7 +64,7 @@ impl kv_typed::prelude::FromBytes for BlockMetaV2 {
     type Err = bincode::Error;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(bytes)
+        bincode_db().deserialize(bytes)
     }
 }
 
@@ -91,11 +93,11 @@ mod tests {
     #[test]
     fn block_meta_v2_as_bytes() {
         assert_eq!(
-            unwrap!(bincode::serialized_size(&BlockMetaV2 {
+            unwrap!(bincode_db().serialized_size(&BlockMetaV2 {
                 dividend: Some(SourceAmount::new(42, 0)),
                 ..Default::default()
             })),
-            BLOCK_META_SERIALIZED_SIZE as u64
+            255
         );
         let bloc_meta = BlockMetaV2::default();
 
diff --git a/dbs/src/values/dunp_head.rs b/dbs/src/values/dunp_head.rs
index bf42b21a41f07c1d83f67af91c14dda2ff72ddaa..a9b1515085a37c3dfdd62b86f845b65cbaeb875d 100644
--- a/dbs/src/values/dunp_head.rs
+++ b/dbs/src/values/dunp_head.rs
@@ -94,7 +94,9 @@ mod tests {
 
 impl AsBytes for DunpHeadDbV1 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        let bytes = bincode::serialize(self).unwrap_or_else(|_| unreachable!());
+        let bytes = bincode_db()
+            .serialize(self)
+            .unwrap_or_else(|_| unreachable!());
         f(bytes.as_ref())
     }
 }
@@ -103,7 +105,9 @@ impl kv_typed::prelude::FromBytes for DunpHeadDbV1 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(&bytes).map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
+        bincode_db()
+            .deserialize(&bytes)
+            .map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
     }
 }
 
diff --git a/dbs/src/values/idty_db.rs b/dbs/src/values/idty_db.rs
index 504f79950fb8b96cda2b12d5af30923ac0110c46..688e1f9b6e53874badedf129889960bc702189a4 100644
--- a/dbs/src/values/idty_db.rs
+++ b/dbs/src/values/idty_db.rs
@@ -23,7 +23,9 @@ pub struct IdtyDbV2 {
 
 impl AsBytes for IdtyDbV2 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        f(&bincode::serialize(&self).unwrap_or_else(|_| unreachable!()))
+        f(&bincode_db()
+            .serialize(&self)
+            .unwrap_or_else(|_| unreachable!()))
     }
 }
 
@@ -31,7 +33,7 @@ impl kv_typed::prelude::FromBytes for IdtyDbV2 {
     type Err = bincode::Error;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(bytes)
+        bincode_db().deserialize(bytes)
     }
 }
 
diff --git a/dbs/src/values/peer_card.rs b/dbs/src/values/peer_card.rs
index 15dfaec948e16c397f538748b6a588533a08fe4a..39979f54b3f534b2de79a51d380c10b98942e477 100644
--- a/dbs/src/values/peer_card.rs
+++ b/dbs/src/values/peer_card.rs
@@ -53,7 +53,9 @@ impl PeerCardDbV1 {
 
 impl AsBytes for PeerCardDbV1 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        let bytes = bincode::serialize(self).unwrap_or_else(|_| unreachable!());
+        let bytes = bincode_db()
+            .serialize(self)
+            .unwrap_or_else(|_| unreachable!());
         f(bytes.as_ref())
     }
 }
@@ -62,7 +64,9 @@ impl kv_typed::prelude::FromBytes for PeerCardDbV1 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(&bytes).map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
+        bincode_db()
+            .deserialize(&bytes)
+            .map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
     }
 }
 
diff --git a/dbs/src/values/tx_db.rs b/dbs/src/values/tx_db.rs
index 59700b7509b24ee076cc2e8c0977d230c2e4734e..beae0572d9f725192696436dfbfba23d007ac549 100644
--- a/dbs/src/values/tx_db.rs
+++ b/dbs/src/values/tx_db.rs
@@ -24,7 +24,9 @@ pub struct PendingTxDbV2 {
 
 impl AsBytes for PendingTxDbV2 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        let bytes = bincode::serialize(self).unwrap_or_else(|_| unreachable!());
+        let bytes = bincode_db()
+            .serialize(self)
+            .unwrap_or_else(|_| unreachable!());
         f(bytes.as_ref())
     }
 }
@@ -33,7 +35,9 @@ impl kv_typed::prelude::FromBytes for PendingTxDbV2 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(&bytes).map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
+        bincode_db()
+            .deserialize(&bytes)
+            .map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
     }
 }
 
diff --git a/dbs/src/values/txs.rs b/dbs/src/values/txs.rs
index f150673ef91757568e6420cf52db7af5f5c58a41..530506ecd16855be76ff6387b3a195ed1796e9f7 100644
--- a/dbs/src/values/txs.rs
+++ b/dbs/src/values/txs.rs
@@ -21,7 +21,9 @@ pub struct BlockTxsDbV2(pub SmallVec<[TransactionDocumentV10; 8]>);
 
 impl AsBytes for BlockTxsDbV2 {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        let bytes = bincode::serialize(self).unwrap_or_else(|_| unreachable!());
+        let bytes = bincode_db()
+            .serialize(self)
+            .unwrap_or_else(|_| unreachable!());
         f(bytes.as_ref())
     }
 }
@@ -30,7 +32,9 @@ impl kv_typed::prelude::FromBytes for BlockTxsDbV2 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(&bytes).map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
+        bincode_db()
+            .deserialize(&bytes)
+            .map_err(|e| CorruptedBytes(format!("{}: '{:?}'", e, bytes)))
     }
 }
 
diff --git a/dbs/src/values/utxo.rs b/dbs/src/values/utxo.rs
index dc5b60e56de686fd24aa56d376df211f82a80392..2c8bb4b50d200a6682e5c58668d5eaf601a1d18a 100644
--- a/dbs/src/values/utxo.rs
+++ b/dbs/src/values/utxo.rs
@@ -113,7 +113,9 @@ pub struct BlockUtxosV2Db(pub HashMap<UtxoIdV10, WalletScriptWithSourceAmountV1D
 
 impl AsBytes for BlockUtxosV2Db {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        f(&bincode::serialize(&self).unwrap_or_else(|_| unreachable!()))
+        f(&bincode_db()
+            .serialize(&self)
+            .unwrap_or_else(|_| unreachable!()))
     }
 }
 
@@ -121,7 +123,7 @@ impl kv_typed::prelude::FromBytes for BlockUtxosV2Db {
     type Err = bincode::Error;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(bytes)
+        bincode_db().deserialize(bytes)
     }
 }
 
diff --git a/dbs/src/values/wallet_script_with_sa.rs b/dbs/src/values/wallet_script_with_sa.rs
index 5d40dd95a54b1c3497008040219cfdfd1c09b6d7..251a9646a89dbadb0f4b45b64fab23667ce62cb0 100644
--- a/dbs/src/values/wallet_script_with_sa.rs
+++ b/dbs/src/values/wallet_script_with_sa.rs
@@ -23,7 +23,9 @@ pub struct WalletScriptWithSourceAmountV1Db {
 
 impl AsBytes for WalletScriptWithSourceAmountV1Db {
     fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T {
-        f(&bincode::serialize(&self).unwrap_or_else(|_| unreachable!()))
+        f(&bincode_db()
+            .serialize(&self)
+            .unwrap_or_else(|_| unreachable!()))
     }
 }
 
@@ -31,7 +33,7 @@ impl kv_typed::prelude::FromBytes for WalletScriptWithSourceAmountV1Db {
     type Err = bincode::Error;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        bincode::deserialize(bytes)
+        bincode_db().deserialize(bytes)
     }
 }
 
diff --git a/tools/kv_typed/Cargo.toml b/tools/kv_typed/Cargo.toml
index 8dc44bb571a7b8a48c02693ba4a04d6f787112be..0b8a4a18270c38b27b8a33ab812809bace2a6a58 100644
--- a/tools/kv_typed/Cargo.toml
+++ b/tools/kv_typed/Cargo.toml
@@ -23,7 +23,7 @@ rayon = { version = "1.3.1", optional = true }
 regex = { version = "1.3.9", optional = true }
 serde_json = { version = "1.0.53", optional = true }
 sled = { version = "0.34.6", optional = true }
-smallvec = { version = "1.4.0", features = ["serde", "write"] }
+smallvec = { version = "1.6", features = ["serde", "write"] }
 thiserror = "1.0.20"
 uninit = "0.4.0"
 zerocopy = "0.3.0"
@@ -36,7 +36,7 @@ required-features = ["leveldb_backend", "sled_backend"]
 [dev-dependencies]
 async-std = { version = "1.6.3", features = ["attributes"] }
 maybe-async = "0.2.0"
-smallvec = { version = "1.4.0", features = ["serde", "write"] }
+smallvec = { version = "1.6", features = ["serde", "write"] }
 tempfile = "3.2.0"
 unwrap = "1.2.1"