Replace `rmp-serde` with `msgpacker`
rmp-serde is basically unmaintained so multiple PRs (https://github.com/3Hren/msgpack-rust/pull/372 and https://github.com/3Hren/msgpack-rust/pull/366) to resolve the paste advisory have been lingering (in the latter case for over half a year).
I briefly looked for replacement crates and msgpacker seemed to be the best option of those I could find, so this just replaces rmp-serde with msgpacker, keeping backwards compatibility with caches serialized with rmp-serde.
Note that msgpacker is not a drop in replacement for rmp-serde thus the "manual" implementation of some pieces. Note that rmp-serde has a config that can change some of these, but askalono serialized with the default config so that's all I needed to cover.
-
rmp-serdeserializes structs as fixed arrays, where the length of the array is the number of fields, unlikemsgpackerwhich just serializes with the array length prefix. - The same thing applies to tuples.
Personally, after having done this work, I'm wondering if it would not eventually be better to remove the dependency altogether in favor of just having a simple inline implementation, perhaps based off msgpack, as this crate's usage is quite simple and the format doesn't really change.
Resolves: #101
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.