rmp
Pure Rust MessagePack serialization implementation
0.8.15
131M downloads/mo
#689 most downloaded on crates.io
3Hren/msgpack-rust
What this package is like to depend on
Last release 8 months ago
23 Dec 2025
Release timing varies
gaps range from 8 days to 2.0 years
Some releases are documented
notes for 3 of 8 stable releases
26 versions withdrawn
withdrawn after publishing
11 years old
34 releases · first in 2015
1 release in the last 12 months
see the full history below
Release timeline
34 releases · May 2015 to Dec 2025Releases
latest 34-
0.8.1523 Dec 2025Nothing published for this version
-
0.8.1417 Apr 2024 -
0.8.1316 Apr 2024 -
0.8.1221 Jul 2023Nothing published for this version
-
0.8.1119 Apr 2022 -
0.8.1002 Feb 2021Nothing published for this version
-
0.8.929 Dec 2019Nothing published for this version
-
0.8.801 Sep 2019Nothing published for this version
-
0.8.723 Aug 2017 withdrawnNothing published for this version
-
0.8.623 Apr 2017 withdrawnRelease notes
Open source →Added
- New
rmp::decode::read_str_from_slicefunction for zero-copy reading strings from slices.
Changed
- Deprecate
rmp::decode::read_str_ref, because it's useless and inconvenient.
- New
-
0.8.513 Mar 2017 withdrawn -
0.8.409 Mar 2017 withdrawn -
0.8.304 Mar 2017 withdrawnRelease notes
Open source →Fixed
- Fixed
write_sint, so it should mark positive values as unsigned integers. Before this change it marked signed integers larger than4294967296with I64 marker, which is not consistent with other MessagePack implementations. Now it should mark such integers with U64 marker.
- Fixed
-
0.8.201 Feb 2017 withdrawn -
0.8.105 Jan 2017 withdrawn -
0.8.005 Jan 2017 withdrawnRelease notes
Open source →Added
- Marker now implements
FromandIntotraits foru8. - Add
read_intfunction, which allows to read integer values and automatically cast to the expected result type even if they aren't the same. An additionalOutOfRangeerror will be returned in the case of failed numeric cast. - Add
NumValueReadErrorenum with additionalOutOfRangevariant to be able to detect whether integer decoding failed because of out of range.
Changed
- Update
byteorderdependency to 1.0. - Unexpected EOF variant has been merged with the default one in the I/O Error enum.
- Function
write_sintnow encodes 64-bit signed integers using the most compact representation. - Function
write_uintnow encodes 64-bit unsigned integers using the most compact representation. - Rename
read_array_sizefunction toread_array_lenfor consistency. - Rename
read_map_sizefunction toread_map_lenfor consistency. - Make
FixedValueWriteErrorstruct private. All functions, that previously returned such kind of error now return the Standard I/O error.
Removed
- Move
ValueandValueRefenums and associated functions into the separatermpvcrate. - Remove conversions from
byteordercrate errors, because since 0.5 there are no such errors. - Remove
write_sint_efffunction - its functionality can now be done usingwrite_sintinstead. - Remove
write_uint_efffunction - its functionality can now be done usingwrite_uintinstead. - Integral functions like
read_*_looselyandread_*_fitwere removed in favor of genericread_intfunction, which allows to read integral values and cast them to the specified result type even if they aren't the same. - Remove
read_bin_borrowfunction.
- Marker now implements
-
0.7.524 Jul 2016 withdrawnRelease notes
Open source →Added
- Add
is_*methods for Value for checking its underlying value without explicit matching. - Add
as_*methods for Value for borrowing its underlying value. - Value is now indexable by integer.
- Add
-
0.7.417 Jul 2016 withdrawnRelease notes
Open source →Added
- Value now can be initialized from primitive values using From trait.
-
0.7.304 Oct 2015 withdrawn -
0.7.223 Sep 2015 withdrawn -
0.7.110 Sep 2015 withdrawnRelease notes
Open source →Changed
- Use
to_ownedinstead ofto_stringwhile convertingValueRefintoValue. This change improvesValueRef::to_owned()method performance by approximately 10-20%.s Also after this change it's cheaper to decode directly intoValueRefwith further converting to owned value rather than decoding directly intoValue.
- Use
-
0.7.024 Aug 2015 withdrawnRelease notes
Open source →Changed
- The big single crate has been refactored, which results in three crates:
rmp,rmp-serializeandrmp-serde.
- The big single crate has been refactored, which results in three crates:
-
0.6.017 Aug 2015 withdrawnRelease notes
Open source →Added
- Initial support for Serde serializer and deserializer.
- Efficient bytes serialization with Serde.
- Efficient binaries deserialization with Serde using
ByteBuf. - Rust serialize Decoder now can provide the underlying reader both by reference or by value, destroying itself in the last case.
Changed
- Update well-formness for
BigEndianReadtrait to be implemented only for sized types. - Renamed
PositiveFixnummarker toFixPos. - Renamed
NegativeFixnummarker toFixNeg. - Renamed
FixedStringmarker toFixStr. - Renamed
FixedArraymarker toFixArray. - Renamed
FixedMaptoFixMap. - Minor documentation updates and markdown fixes.
-
0.5.110 Aug 2015 withdrawnRelease notes
Open source →Changed
- Now the
rustc_serialize::Encodershould encode signed integers using the most effective underlying representation. - Now the
rustc_serialize::Decodershould properly map integers to the result type if the decoded value fits in result type's range.
- Now the
-
0.5.001 Aug 2015 withdrawnRelease notes
Open source →Added
- New
ValueRefvalue struct represents MessagePack'ed value, but unlike an owningValueit owns nothing except its structure. It means that all strings and binaries it contains are borrowed from the byte array from which the value was created. - New
BorrowReadtrait, which looks like a standardBufReadbut unlike the standard this has an explicit internal buffer lifetime, which allows to borrow from underlying buffer while mutating the type. - Encoding function for
ValueRefwith its own error category. - Decoding function for
ValueRefwith its own error category. - Conversion method from
ValueReftoValue. - More benchmarks and tests.
Changed
- Derive
Copytrait forIntegerandFloatenums.
- New
-
0.4.017 Jul 2015 withdrawnRelease notes
Open source →Added
- Low level
write_strfunction allows to serialize the UTF-8 encoded strings the most efficient way. - Low level
write_binfunction allows to serialize the binary array the most efficient way. - Implemented
std::error::Errortrait for error types.
- Low level
-
0.3.205 Jul 2015 withdrawn -
0.3.128 Jun 2015 withdrawnRelease notes
Open source →Changed
- Stabilizing enum serialization/deserialization. Now every enum is serialized as [int, [args...]].
- Suppressed some warnings appeared on updated compiler.
-
0.3.025 Jun 2015 withdrawn -
0.2.215 Jun 2015 withdrawn -
0.2.131 May 2015 withdrawnRelease notes
Open source →Added
- Benchmarking module.
Changed
- Increased string decoding performance by ~30 times.
- Exported
read_valuefunction to thermp::decodemodule. - Exported
Valuestruct to the root crate namespace.
-
0.2.027 May 2015 withdrawnRelease notes
Open source →Added
- Introducing a
Valuealgebraic data type, which represents an owning MessagePack object. It can be found inrmp::valuemodule. - The Value ADT encoding and decoding functions.
- Low-level ext type decoders.
- Introducing a
-
0.1.118 May 2015 withdrawnRelease notes
Open source →Changed
- Added documentation and repository site in Cargo.toml.
- Added keywords to ease searching using crates.io.
-
0.1.015 May 2015 withdrawnRelease notes
Open source →Added
- Initial commit.
- This CHANGELOG file to hopefully serve as an evolving example of a standardized open source project CHANGELOG.