diff --git a/Cargo.lock b/Cargo.lock index 51fa2a95..23e4f468 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -970,7 +970,7 @@ dependencies = [ "pretty_env_logger", "prometheus", "rand 0.8.5", - "rmp-serde 1.1.0", + "rmp-serde 0.15.5", "serde", "serde_bytes", "serde_json", @@ -1042,7 +1042,7 @@ dependencies = [ "hex", "opentelemetry", "rand 0.8.5", - "rmp-serde 1.1.0", + "rmp-serde 0.15.5", "serde", "serde_bytes", "tokio", @@ -1111,7 +1111,7 @@ dependencies = [ "netapp 0.4.4", "opentelemetry", "rand 0.8.5", - "rmp-serde 1.1.0", + "rmp-serde 0.15.5", "serde", "serde_bytes", "tokio", @@ -1168,7 +1168,7 @@ dependencies = [ "opentelemetry", "pnet_datalink", "rand 0.8.5", - "rmp-serde 1.1.0", + "rmp-serde 0.15.5", "schemars", "serde", "serde_bytes", @@ -1214,7 +1214,7 @@ dependencies = [ "hexdump", "opentelemetry", "rand 0.8.5", - "rmp-serde 1.1.0", + "rmp-serde 0.15.5", "serde", "serde_bytes", "tokio", @@ -1262,7 +1262,7 @@ dependencies = [ "netapp 0.4.4", "opentelemetry", "rand 0.8.5", - "rmp-serde 1.1.0", + "rmp-serde 0.15.5", "serde", "serde_json", "sha2", @@ -2351,12 +2351,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "paste" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" - [[package]] name = "pem" version = "0.8.3" @@ -2746,13 +2740,12 @@ dependencies = [ [[package]] name = "rmp" -version = "0.8.11" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +checksum = "4f55e5fa1446c4d5dd1f5daeed2a4fe193071771a2636274d0d7a3b082aa7ad6" dependencies = [ "byteorder", "num-traits", - "paste", ] [[package]] @@ -2777,17 +2770,6 @@ dependencies = [ "serde", ] -[[package]] -name = "rmp-serde" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25786b0d276110195fa3d6f3f31299900cf71dfbd6c28450f3f58a0e7f7a347e" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - [[package]] name = "roxmltree" version = "0.14.1" diff --git a/src/block/Cargo.toml b/src/block/Cargo.toml index 1a49947c..80346aca 100644 --- a/src/block/Cargo.toml +++ b/src/block/Cargo.toml @@ -28,7 +28,7 @@ tracing = "0.1.30" rand = "0.8" zstd = { version = "0.9", default-features = false } -rmp-serde = "1.1" +rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_bytes = "0.11" diff --git a/src/garage/Cargo.toml b/src/garage/Cargo.toml index d5299291..eb643160 100644 --- a/src/garage/Cargo.toml +++ b/src/garage/Cargo.toml @@ -37,7 +37,7 @@ rand = "0.8" async-trait = "0.1.7" sodiumoxide = { version = "0.2.5-0", package = "kuska-sodiumoxide" } -rmp-serde = "1.1" +rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_bytes = "0.11" structopt = { version = "0.3", default-features = false } diff --git a/src/garage/repair.rs b/src/garage/repair.rs index ae28f351..75828f24 100644 --- a/src/garage/repair.rs +++ b/src/garage/repair.rs @@ -81,7 +81,7 @@ impl Repair { info!("repair_versions: {}", i); } - let version = rmp_serde::decode::from_slice::(&item_bytes)?; + let version = rmp_serde::decode::from_read_ref::<_, Version>(&item_bytes)?; if version.deleted.get() { continue; } @@ -133,7 +133,7 @@ impl Repair { info!("repair_block_ref: {}", i); } - let block_ref = rmp_serde::decode::from_slice::(&item_bytes)?; + let block_ref = rmp_serde::decode::from_read_ref::<_, BlockRef>(&item_bytes)?; if block_ref.deleted.get() { continue; } diff --git a/src/model/Cargo.toml b/src/model/Cargo.toml index 322feee1..d908dc01 100644 --- a/src/model/Cargo.toml +++ b/src/model/Cargo.toml @@ -31,7 +31,7 @@ tracing = "0.1.30" rand = "0.8" zstd = { version = "0.9", default-features = false } -rmp-serde = "1.1" +rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_bytes = "0.11" diff --git a/src/model/index_counter.rs b/src/model/index_counter.rs index d8c1229a..6f81be3e 100644 --- a/src/model/index_counter.rs +++ b/src/model/index_counter.rs @@ -181,9 +181,11 @@ impl IndexCounter { let new_entry = self.local_counter.db().transaction(|mut tx| { let mut entry = match tx.get(&self.local_counter, &tree_key[..])? { - Some(old_bytes) => rmp_serde::decode::from_slice::(&old_bytes) - .map_err(Error::RmpDecode) - .map_err(db::TxError::Abort)?, + Some(old_bytes) => { + rmp_serde::decode::from_read_ref::<_, LocalCounterEntry>(&old_bytes) + .map_err(Error::RmpDecode) + .map_err(db::TxError::Abort)? + } None => LocalCounterEntry { values: BTreeMap::new(), }, diff --git a/src/model/key_table.rs b/src/model/key_table.rs index 852bf607..330e83f0 100644 --- a/src/model/key_table.rs +++ b/src/model/key_table.rs @@ -175,7 +175,7 @@ impl TableSchema for KeyTable { } fn try_migrate(bytes: &[u8]) -> Option { - let old_k = rmp_serde::decode::from_slice::(bytes).ok()?; + let old_k = rmp_serde::decode::from_read_ref::<_, old::Key>(bytes).ok()?; let name = crdt::Lww::raw(old_k.name.timestamp(), old_k.name.get().clone()); let state = if old_k.deleted.get() { diff --git a/src/model/migrate.rs b/src/model/migrate.rs index bfd9845b..25acb4b0 100644 --- a/src/model/migrate.rs +++ b/src/model/migrate.rs @@ -28,7 +28,7 @@ impl Migrate { let mut old_buckets = vec![]; for res in tree.iter().map_err(GarageError::from)? { let (_k, v) = res.map_err(GarageError::from)?; - let bucket = rmp_serde::decode::from_slice::(&v[..]) + let bucket = rmp_serde::decode::from_read_ref::<_, old_bucket::Bucket>(&v[..]) .map_err(GarageError::from)?; old_buckets.push(bucket); } diff --git a/src/model/s3/object_table.rs b/src/model/s3/object_table.rs index c242b325..3d9a89f7 100644 --- a/src/model/s3/object_table.rs +++ b/src/model/s3/object_table.rs @@ -270,7 +270,7 @@ impl TableSchema for ObjectTable { } fn try_migrate(bytes: &[u8]) -> Option { - let old_obj = rmp_serde::decode::from_slice::(bytes).ok()?; + let old_obj = rmp_serde::decode::from_read_ref::<_, old::Object>(bytes).ok()?; Some(migrate_object(old_obj)) } } diff --git a/src/model/s3/version_table.rs b/src/model/s3/version_table.rs index f67f2ff1..ad096772 100644 --- a/src/model/s3/version_table.rs +++ b/src/model/s3/version_table.rs @@ -168,7 +168,7 @@ impl TableSchema for VersionTable { } fn try_migrate(bytes: &[u8]) -> Option { - let old = rmp_serde::decode::from_slice::(bytes).ok()?; + let old = rmp_serde::decode::from_read_ref::<_, old::Version>(bytes).ok()?; let blocks = old .blocks diff --git a/src/rpc/Cargo.toml b/src/rpc/Cargo.toml index 93df02a4..73328993 100644 --- a/src/rpc/Cargo.toml +++ b/src/rpc/Cargo.toml @@ -26,7 +26,7 @@ rand = "0.8" sodiumoxide = { version = "0.2.5-0", package = "kuska-sodiumoxide" } async-trait = "0.1.7" -rmp-serde = "1.1" +rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_bytes = "0.11" serde_json = "1.0" diff --git a/src/table/Cargo.toml b/src/table/Cargo.toml index 690d5a71..6de37cda 100644 --- a/src/table/Cargo.toml +++ b/src/table/Cargo.toml @@ -26,7 +26,7 @@ hexdump = "0.1" tracing = "0.1.30" rand = "0.8" -rmp-serde = "1.1" +rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_bytes = "0.11" diff --git a/src/table/data.rs b/src/table/data.rs index fe8c5dbc..64ca9f14 100644 --- a/src/table/data.rs +++ b/src/table/data.rs @@ -300,7 +300,7 @@ where } pub fn decode_entry(&self, bytes: &[u8]) -> Result { - match rmp_serde::decode::from_slice::(bytes) { + match rmp_serde::decode::from_read_ref::<_, F::E>(bytes) { Ok(x) => Ok(x), Err(e) => match F::try_migrate(bytes) { Some(x) => Ok(x), diff --git a/src/table/merkle.rs b/src/table/merkle.rs index dc67e8b7..138f3ca3 100644 --- a/src/table/merkle.rs +++ b/src/table/merkle.rs @@ -354,7 +354,7 @@ impl MerkleNode { fn decode_opt(ent: &Option) -> Result { match ent { None => Ok(MerkleNode::Empty), - Some(v) => Ok(rmp_serde::decode::from_slice::(&v[..])?), + Some(v) => Ok(rmp_serde::decode::from_read_ref::<_, MerkleNode>(&v[..])?), } } diff --git a/src/util/Cargo.toml b/src/util/Cargo.toml index e68704ad..5d073436 100644 --- a/src/util/Cargo.toml +++ b/src/util/Cargo.toml @@ -25,7 +25,7 @@ rand = "0.8" sha2 = "0.9" chrono = "0.4" -rmp-serde = "1.1" +rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_json = "1.0" toml = "0.5" diff --git a/src/util/data.rs b/src/util/data.rs index 2ef976a5..7715c2cc 100644 --- a/src/util/data.rs +++ b/src/util/data.rs @@ -151,7 +151,7 @@ where let mut wr = Vec::with_capacity(128); let mut se = rmp_serde::Serializer::new(&mut wr) .with_struct_map() - .with_binary(); + .with_string_variants(); val.serialize(&mut se)?; Ok(wr) } diff --git a/src/util/persister.rs b/src/util/persister.rs index d0759db7..9e1a1910 100644 --- a/src/util/persister.rs +++ b/src/util/persister.rs @@ -33,7 +33,7 @@ where let mut bytes = vec![]; file.read_to_end(&mut bytes)?; - let value = rmp_serde::decode::from_slice(&bytes[..])?; + let value = rmp_serde::decode::from_read_ref(&bytes[..])?; Ok(value) } @@ -57,7 +57,7 @@ where let mut bytes = vec![]; file.read_to_end(&mut bytes).await?; - let value = rmp_serde::decode::from_slice(&bytes[..])?; + let value = rmp_serde::decode::from_read_ref(&bytes[..])?; Ok(value) }