NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #469 most downloaded on PyPI
Fast, correct Python msgpack library supporting dataclasses, datetimes, and numpy
Last release 8 months ago
18 Jan 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 37 of 37 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
37 releases · first in 2021
One column per quarter.
Add Python 3.14 free-threaded Windows x86_64 wheel
Changed
Fixed
unpackb crash on Windows with Python 3.14 free-threaded andRevamp the documentation. The documentation is now generated with Sphinx and is available at https://ormsgpack.readthedocs.io
Changed
Fixed
Add packb option OPT_REPLACE_SURROGATES to serialize strings that contain surrogate code points
Changed
packb option OPT_REPLACE_SURROGATES to serialize strings that containFixed
Add support for free-threading and subinterpreters
Add support for Python 3.14
Add support for free-threading and subinterpreters
Add Windows arm64 wheels (412 by JexinSam)
Port to PyPy 3.11 and GraalPy 3.11
Changed
bytearray and memoryview types by littledivy in #374packb and unpackb option OPT_DATETIME_AS_TIMESTAMP_EXT to serialize aware datetime objects to timestamp extension objects and deserialize timestamp extension objects to UTC datetime objects, respectively #378Port to PyPy 3.11 and GraalPy 3.11
Add support for bytearray and memoryview types (374 by littledivy)
Add packb and unpackb option OPT_DATETIME_AS_TIMESTAMP_EXT to serialize aware datetime objects to timestamp extension objects and deserialize timestamp extension objects to UTC datetime objects, respectively (378)
Changed Add musllinux wheels #366
Changed
Add packb option OPT_PASSTHROUGH_ENUM to enable passthrough of Enum objects by hinthornw in #361
Add packb option OPT_PASSTHROUGH_ENUM to enable passthrough of Enum objects (361 by hinthornw)
Add PyInstaller hook (354)
Update dependencies
packb now rejects dictionary keys with nested dataclasses or pydantic models
Fixed
packb now rejects dictionary keys with nested dataclasses or pydantic modelsChanged
packb option OPT_PASSTHROUGH_UUID to enable passthrough of UUID objects #338Detect Pydantic 2.10 models #311
Fixed
__slots__ and with a field definedinit=FalseChanged
OPT_SORT_KEYS also for Pydantic models #312Deduplicate map keys also when OPT_NON_STR_KEYS is set #279
Deduplicate map keys also when OPT_NON_STR_KEYS is set (279)
Add missing type information for Ext type (285 by trim21)
Fix type annotation of unpackb first argument
Add support for python 3.13
Improve test coverage
Add support for numpy datetime64 and float16 types
Changed
Fix crash on termination with Python 3.11
Fixed
Changed
Fix performance regression in dict serialization introduced in 1.3.0
Fixed
Fix crash in non optimized builds
Fixed
Changed
Add packb option OPT_SORT_KEYS to serialize dictionaries sorted by key
Changed
packb option OPT_SORT_KEYS to serialize dictionaries sorted by keyonce_cell poisoning on parallel initialization by (@Quitlox)[https://github.com/Quitlox] in (#153)[https://github.com/aviramha/ormsgpack/pull/153]
once_cell poisoning on parallel initialization by (@Quitlox)[https://github.com/Quitlox] in (#153)[https://github.com/aviramha/ormsgpack/pull/153]once_cell poisoning on parallel initialization (153 by Quitlox)
aarch64 build on macOS. Took src/serialize/writer.rs from upstream orjson. by @ijl
src/serialize/writer.rs from upstream orjson. by @ijlFix CI (upgrade maturin, warnings, etc.)
Updated dependencies. partially by @tilman19
Updated dependencies. (101 partially by tilman19)
Handle clippy warnings.
## 1.2.2 - 19/4/2022 ### Misc - Update dependencies
## 1.2.1 - 1/3/2022 ### Misc - Release 3.10 wheels - Update dependencies
Extended int passthrough to support u64. by @pejter
numpy.rs from_parent to to_children to fix new lint rulesExtended int passthrough to support u64. (77 by pejter)
Updated README to include new options. (70 by ThomasTNO)
Updated dependencies
Renamed in numpy.rs from_parent to to_children to fix new lint rules
Add optional passthrough for tuples. by @TariqTNO
Add optional passthrough for tuples. (64 by TariqTNO)
Add optional passthrough for ints, that do not fit into an i64. (64 by TariqTNO)
opt parameter can be None.
Updated dependencies.
Dropped 3.6 CI/CD.
Added macOS universal builds (M1)
## 1.0.3 - 18/12/2021 - Update dependencies
## 1.0.2 - 26/10/2021 ### Changed - Update dependencies
Decrement refcount for numpy PyArrayInterface. by @ilj.
Aligned to orjson's flags and features of SIMD. Didn't include the stable compilation part as seems unnecessary.
## 0.3.6 - 24/8/2021 ### Misc - Update dependencies.
Fixed clippy warnings for semicolon in macro.
Fixed ormsgpack.pyi support of str as input for unpackb.
ormsgpack.pyi support of str as input for unpackb.Refactored adding objects to the module, creating a __all__ object similar to the way PyO3 creates. This solves an issue with upgrading to new maturin
__all__ object similar to the way PyO3 creates. This solves an issue with upgrading to new maturin version.Fix memory leak serializing datetime.datetime with tzinfo. (Copied from orjson)
datetime.datetime with tzinfo. (Copied from orjson)packb of maps and sequences is now almost 2x faster as it leverages known size. PR #18 by @ijl.
packb of maps and sequences is now almost 2x faster as it leverages known size. (18 by ijl)
Added scripts/bench_target.py and scripts/profile.sh for easily benchmarking and profiling. Works only on Linux. (17 by ijl)
unpackb now accepts keyword argument option with argument OPT_NON_STR_KEYS. This option will let ormsgpack unpack dictionaries with non-str keys. Be a
unpackb now accepts keyword argument option with argument OPT_NON_STR_KEYS. This option will let ormsgpack
unpack dictionaries with non-str keys.
Be aware that this option is considered unsafe and disabled by default in msgpack due to possibility of HashDoS.packb now is able to pack dictionaries with tuples as keys. unpackb is able to unpack such dictionaries. Both requires
OPT_NON_STR_KEYS.README.mdDepth limit is now enforced for ormsgpack.unpackb - function should be safe for use now.
ormsgpack.unpackb - function should be safe for use now.OPT_SERIALIZE_UUID from ormsgpack.pyi as it doesn't exist.scripts/test.sh for running tests.Add support for serializing pydantic's BaseModel instances using ormsgpack.OPT_SERIALIZE_PYDANTIC.
BaseModel instances using ormsgpack.OPT_SERIALIZE_PYDANTIC.orjson.packb with option argument as ormsgpack.OPT_NON_STR_KEYS serializes bytes key into tuple of integers
instead of using bin type. This also resulted in assymetrical packb/unpackb.--no-index to pip install ormsgpack to avoid installing from PyPI on CI.Add support for serializing pydantic’s BaseModel instances using ormsgpack.OPT_SERIALIZE_PYDANTIC.
ormsgpack.packb with option argument as ormsgpack.OPT_NON_STR_KEYS serializes bytes key into tuple of integers instead of using bin type. This also resulted in asymmetrical packb/unpackb.
Added --no-index to pip install ormsgpack to avoid installing from PyPI on CI.
First release of ormsgpack. Don't use unpackb https://github.com/aviramha/ormsgpack/issues/2
First release of ormsgpack. Don't use unpackb https://github.com/aviramha/ormsgpack/issues/2
Your coding agent can read these notes before it upgrades. Set up the MCP server →