NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #145 most downloaded on PyPI
MessagePack serializer
Last release 5 days ago
29 Sep 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 26 of 26 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
35 releases · first in 2018
Fix memory leaks in the C extension when map key validation or container hooks fail. See GHSA-j586-36cw-2gc2 .
frozentdict (PEP 814) by @edgarrmondragon in #738Full Changelog: v1.2.2...v1.2.3
One column per quarter.
Release Date: 2026-09-29
Unpacker.skip()
after previously unpacking a nested object in the C extension.ValueError in the C extension when switching between unpacking, skipping,
header readers, or read_bytes() while an object is incomplete. Resume with the
same method after feeding more data; unpack() and iteration remain interchangeable.read_bytes(), and reinitialization
of the same C Unpacker while unpacking is in progress.Packer.pack_array_header() and Packer.pack_map_header(). #742frozendict objects. #738fix docstring for read_size by @methane in #700
Full Changelog: v1.2.1...v1.2.2
Release Date: 2026-08-27
read_size documentation. #700timestamp=3. #701Unpacker.feed() while unpacking. #704Timestamp.from_datetime() precision for far-future datetimes. #710unpackb() ExtraData path for non-contiguous input. #722Packer's buf_size. #726RecursionError to StackError in the fallback Unpacker.skip(). #727OverflowError when use_single_float=True cannot represent a value. #728Bump pypa/cibuildwheel from 4.0.0 to 4.1.0 in the all-dependencies group by @dependabot [bot] in #694
Full Changelog: v1.2.0...v1.2.1
Release Date: 2026-06-19
Fix a segfault when calling Unpacker.unpack() or Unpacker.skip() after an unpacking failure.
But note that reusing the same Unpacker instance after an unpacking failure is not supported.
Please create a new Unpacker instance instead. GHSA-6v7p-g79w-8964
relax setuptools version by @methane in #652
unpack_callback_uint32 result by @KowalskiThomas in #666unpack_callback_int64 by @KowalskiThomas in #665strict_map_key with object_pairs_hook by @KowalskiThomas in #673pack_timestamp by @KowalskiThomas in #672get_data_from_buffer by @KowalskiThomas in #677Packer buffer protocol hooks with Cython critical sections by @Copilot in #686Unpacker.__init__ re-entry cleanup to prevent buffer/context leaks by @Copilot in #687Full Changelog: v1.1.2...v1.2.0
Release Date: 2026-06-11
strict_map_key option didn't work for object_pairs_hook. #673Packer.pack_ext_type() ignored autoreset option. #663Timestamp.from_datetime() returning wrong value for pre-epoch datetimes. #662unpackb() and Unpacker.unpack() for non-contiguous input. #677Unpacker.__init__() several times. #687relax setuptools version by @methane in #652
unpack_callback_uint32 result by @KowalskiThomas in #666unpack_callback_int64 by @KowalskiThomas in #665strict_map_key with object_pairs_hook by @KowalskiThomas in #673pack_timestamp by @KowalskiThomas in #672get_data_from_buffer by @KowalskiThomas in #677Packer buffer protocol hooks with Cython critical sections by @Copilot in #686Unpacker.__init__ re-entry cleanup to prevent buffer/context leaks by @Copilot in #687Full Changelog: v1.1.2...v1.2.0rc1
ci: update cibuildwheel and drop Python 3.8 by @methane in #642
Full Changelog: v1.1.1...v1.1.2
Release Date: 2025-10-08
This release does not change source code. It updates only building wheels:
Add Python 3.13 trove classifier by @edgarrmondragon in #626
Full Changelog: v1.1.0...v1.1.1
Add Python 3.13 trove classifier by @edgarrmondragon in #626
Full Changelog: v1.1.0...v1.1.1rc1
Release Date: 2025-06-06
Avoid using floating points during timestamp-datetime conversions by @hakanakyurek in #591
buf_size option by @methane in #604Full Changelog: v1.0.8...v1.1.0
Release Date: 2024-09-10
PyLong_* instead of PyInt_* for compatibility with future
Cython. (#620)update Cython to 3.0.11 by @methane in #617
Release Date: 2024-08-19
Update Cython to 3.0.10 to reduce C warnings and future support for Python 3.13.
Packer() has buf_size option to specify initial size of internal buffer to reduce reallocation.buf_size if you are packing large data.buf_size option by @methane in #604Full Changelog: v1.0.8...v1.1.0rc1
exclude C/Cython files from wheel by @methane in #577
Full Changelog: v1.0.7...v1.0.8
Release Date: 2024-03-01
Unpacker object on Python 3.12.remove inline macro for msvc by @methane in https://github.com/msgpack/msgpack-python/pull/567
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.6...v1.0.7
Release Date: 2023-09-28
setup.py doesn't skip build error of extension module. (#568)fix: build status badge by @Laerte in https://github.com/msgpack/msgpack-python/pull/538
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.5...v1.0.6
Release Date: 2023-09-21
[!NOTE] v1.0.6 Wheels for Windows don't contain extension module. Please upgrade to v1.0.7 or newer.
fix: build status badge by @Laerte in https://github.com/msgpack/msgpack-python/pull/538
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.5...v1.0.6rc1
Fallback to compiler defines when __BYTE_ORDER is not available by @kulikjak in https://github.com/msgpack/msgpack-python/pull/513
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.4...v1.0.5
Release Date: 2023-03-08
__BYTE_ORDER__ instead of __BYTE_ORDER for portability. (#513,
#514)Fallback to compiler defines when __BYTE_ORDER is not available by @kulikjak in https://github.com/msgpack/msgpack-python/pull/513
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.4...v1.0.5rc1
refresh ci settings. by @methane in https://github.com/msgpack/msgpack-python/pull/492
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.3...v1.0.4
Release Date: 2022-06-03
__*_ENDIAN__ macro
on Unix. by @methane in
https://github.com/msgpack/msgpack-python/pull/495refresh ci settings. by @methane in https://github.com/msgpack/msgpack-python/pull/492
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.3...v1.0.4rc1
Refactor fallback' read header by @GuyTuval in https://github.com/msgpack/msgpack-python/pull/441
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.2...v1.0.3
Release Date: 2021-11-24 JST
Refactor fallback' read header by @GuyTuval in https://github.com/msgpack/msgpack-python/pull/441
Full Changelog: https://github.com/msgpack/msgpack-python/compare/v1.0.2...v1.0.3rc1
Fix year 2038 problem regression in 1.0.1.
Add Python 3.9 and linux/arm64 wheels.
Remove Python 2 support from the msgpack/_cmsgpack. msgpack/fallback still supports Python 2.
Release Date: 2020-02-17
msgpack/_cmsgpack.
msgpack/fallback still supports Python 2.encoding option from the Packer and Unpacker.max_buffer_size is changed to 100MiB.strict_map_key is True by default now.datetime object with tzinfo.Fix Unpacker.read_bytes() in fallback implementation.
(#352)Nothing published for this version
Update Cython to 0.29.13 for support Python 3.8.
Release Date: 2019-09-20
max_bin_len, max_str_len, and max_ext_len are deprecated. Since this is minor release, it's document only deprecation.
Release Date: 2019-01-25
This release is for mitigating pain caused by v0.6.0 reduced max input limits for security reason.
unpackb(data) configures max_*_len options from len(data),
instead of static default sizes.Unpacker(max_buffer_len=N) configures max_*_len options from N,
instead of static default sizes.max_bin_len, max_str_len, and max_ext_len are deprecated. Since
this is minor release, it's document only deprecation.This release contains some backward incompatible changes for security reason (DoS).
Release Date: 2018-11-30
This release contains some backward incompatible changes for security reason (DoS).
ValueError (including
UnicodeError) into UnpackValueError. If you want to catch all
exception during unpack, you need to use try ... except Exception
with minimum try code block. (#323, #233)PackValueError and PackOverflowError are also removed. You need to
catch normal ValueError and OverflowError. (#323, #233)strict_map_key option now. When it is true, only bytes
and str (unicode in Python 2) are allowed for map keys. It is
recommended to avoid hashdos. Default value of this option is False
for backward compatibility reason. But it will be changed True in 1.0.
(#296, #334)msgpack._cmsgpack instead of
msgpack._packer and msgpack._unpacker. (#314, #328)Unpacker.getbuffer() method. (#320)msgpack.StackError is raised when input data contains too
nested data. (#331)msgpack.FormatError is raised when input data is not valid
msgpack format. (#331)Fix fallback.Unpacker.feed() dropped unused data from buffer
unpacker.unpack(). They were removed
at 0.5.5 but it breaks backward compatibility. (#288, #290)Fix memory leak in pure Python Unpacker.feed()
raw option
(#285)Undeprecate unicode_errors option.
unicode_errors option. (#278)Fixed regression when passing unicode_errors to Packer but not encoding.
unicode_errors to Packer but not
encoding. (#277)Add raw option to Unpacker. It is preferred way than encoding option.
raw option to Unpacker. It is preferred way than encoding
option.Remove FutureWarning about use_bin_type option
There are some deprecations. Please read changes carefully.
There are some deprecations. Please read changes carefully.
default() is called. default() is called for
tuple too.Unpacker.tell(). And write_bytes option is deprecated.Your coding agent can read these notes before it upgrades. Set up the MCP server →