From cd09453588be1c98782150535b399b2ff3d851ce Mon Sep 17 00:00:00 2001 From: pjht Date: Tue, 18 Jun 2024 16:44:09 -0500 Subject: [PATCH] Switch back to postcard --- Cargo.lock | 117 +++++++++++++++++++++++++++++++++------------ vfs_rpc/Cargo.toml | 2 +- vfs_rpc/src/lib.rs | 24 +++++----- 3 files changed, 99 insertions(+), 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8a7b23f..a81666e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "autocfg" version = "1.3.0" @@ -26,15 +35,56 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + [[package]] name = "fs_rpc" version = "0.1.0" dependencies = [ "parking_lot", - "rmp-serde", + "postcard", "serde", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "libc" version = "0.2.155" @@ -51,15 +101,6 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - [[package]] name = "parking_lot" version = "0.12.3" @@ -84,10 +125,16 @@ dependencies = [ ] [[package]] -name = "paste" -version = "1.0.15" +name = "postcard" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] [[package]] name = "proc-macro2" @@ -117,25 +164,12 @@ dependencies = [ ] [[package]] -name = "rmp" -version = "0.8.14" +name = "rustc_version" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" -dependencies = [ - "byteorder", - "rmp", - "serde", + "semver", ] [[package]] @@ -144,6 +178,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + [[package]] name = "serde" version = "1.0.203" @@ -170,6 +210,21 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "syn" version = "2.0.66" @@ -201,7 +256,7 @@ name = "vfs_rpc" version = "0.1.0" dependencies = [ "parking_lot", - "rmp-serde", + "postcard", "serde", ] diff --git a/vfs_rpc/Cargo.toml b/vfs_rpc/Cargo.toml index 0dfb818..ae3db6b 100644 --- a/vfs_rpc/Cargo.toml +++ b/vfs_rpc/Cargo.toml @@ -5,5 +5,5 @@ edition = "2021" [dependencies] parking_lot = "0.12.3" -rmp-serde = "1.3.0" +postcard = { version = "1.0.8", features = ["use-std"] } serde = { version = "1.0.203" } diff --git a/vfs_rpc/src/lib.rs b/vfs_rpc/src/lib.rs index 9ca7fa5..aab6b6d 100644 --- a/vfs_rpc/src/lib.rs +++ b/vfs_rpc/src/lib.rs @@ -25,22 +25,22 @@ impl Client { } pub fn register_fs(self, kind: &str) -> Result<(), ()> { - rmp_serde::from_slice( - &rpc::send_call(self.0, PROTO, 0, &rmp_serde::to_vec(kind).unwrap()).get_return(), + postcard::from_bytes( + &rpc::send_call(self.0, PROTO, 0, &postcard::to_stdvec(kind).unwrap()).get_return(), ) .unwrap() } pub fn mount(self, dev: &Path, kind: &str, path: &Path) -> Result<(), ()> { - rmp_serde::from_slice( - &rpc::send_call(self.0, PROTO, 1, &rmp_serde::to_vec(&(dev, kind, path)).unwrap()).get_return(), + postcard::from_bytes( + &rpc::send_call(self.0, PROTO, 1, &postcard::to_stdvec(&(dev, kind, path)).unwrap()).get_return(), ) .unwrap() } pub fn open(self, path: &Path) -> Result<(u64, u64), ()> { - rmp_serde::from_slice( - &rpc::send_call(self.0, PROTO, 2, &rmp_serde::to_vec(path).unwrap()).get_return(), + postcard::from_bytes( + &rpc::send_call(self.0, PROTO, 2, &postcard::to_stdvec(path).unwrap()).get_return(), ) .unwrap() } @@ -60,16 +60,16 @@ fn callback(call: IncomingCall) { let server_lock = SERVER.read(); let server = server_lock.as_ref().unwrap(); if call.func == 0 { - let kind = rmp_serde::from_slice(&call.args).unwrap(); - let ret = rmp_serde::to_vec(&server.register_fs(call.from, kind)).unwrap(); + let kind = postcard::from_bytes(&call.args).unwrap(); + let ret = postcard::to_stdvec(&server.register_fs(call.from, kind)).unwrap(); call.send_return(&ret); } else if call.func == 1 { - let (dev, kind, path) = rmp_serde::from_slice(&call.args).unwrap(); - let ret = rmp_serde::to_vec(&server.mount(dev, kind, path)).unwrap(); + let (dev, kind, path) = postcard::from_bytes(&call.args).unwrap(); + let ret = postcard::to_stdvec(&server.mount(dev, kind, path)).unwrap(); call.send_return(&ret); } else if call.func == 2 { - let path = rmp_serde::from_slice(&call.args).unwrap(); - let ret = rmp_serde::to_vec(&server.open(path)).unwrap(); + let path = postcard::from_bytes(&call.args).unwrap(); + let ret = postcard::to_stdvec(&server.open(path)).unwrap(); call.send_return(&ret); } }