ormsgpack
Fast, correct Python msgpack library supporting dataclasses, datetimes, and numpy
Decision gist · record as of 2026-08-14
Yes. ormsgpack is actively maintained, has no known vulnerabilities, supports current Python versions (3.10 or newer), and is widely used (top 1000 PyPI by downloads). Install it if you need fast, type-aware MessagePack serialization for dataclasses, datetimes, or numpy arrays. The medium install friction (compiled Rust dependency) is offset by pre-built wheels for common platforms and the performance gain over pure-Python alternatives.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or newer.
- Source builds require Rust 1.81 or newer and maturin.
- Medium install friction due to compiled Rust components; pre-built wheels cover common platforms (CPython 3.10–3.12, macOS, Linux, Windows, ARM), but source builds require Rust 1.81 or newer and maturin.
License · maintenance · safety
Apache-2.0 OR MIT (permissive) — Licensed under Apache-2.0 OR MIT (permissive dual license), allowing use in both open-source and proprietary projects with minimal restrictions.
last release 2026-01-18 (208 days) · last repo commit 2026-08-13 · 400 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 52,745,996 downloads/mo, #557 on PyPI
Alternatives
Verify before relying
import ormsgpack
import datetime
event = {"type": "put", "time": datetime.datetime(1970, 1, 1)}
packed = ormsgpack.packb(event)
unpacked = ormsgpack.unpackb(packed)- Performance benchmarks against standard msgpack or other serializers in real-world workloads
- Memory overhead or limits for very large objects or arrays
- Compatibility guarantees with different MessagePack protocol versions
- How datetime objects are formatted in the packed output
What it is and what it does
ormsgpack is a MessagePack serialization library written in Rust and exposed to Python, designed for speed and correctness. It serializes Python objects—including dataclasses, datetimes, and numpy arrays—into the compact MessagePack binary format and deserializes them back. The library is derived from orjson and follows semantic versioning, supporting CPython, PyPy, and GraalPy across multiple platforms.
You use it when you need to exchange structured data efficiently over networks or storage, or when you want faster serialization than the standard library's json or pickle modules. It handles type conversions transparently and offers options like OPT_SERIALIZE_NUMPY to control how specific types are encoded.
Use it for
- Serialize and deserialize structured data in web APIs or microservices to reduce bandwidth and latency
- Store Python objects in binary format for caching or persistence with smaller file sizes than JSON
- Encode numpy arrays and dataclasses for efficient data exchange in scientific or data-processing pipelines
- Replace pickle for untrusted data sources, since MessagePack is a simpler, safer format
- Optimize message passing in distributed systems or message queues by reducing serialization overhead
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
ormsgpack is actively maintained, has no known vulnerabilities, supports current Python versions (3.10 or newer), and is widely used (top 1000 PyPI by downloads). Install it if you need fast, type-aware MessagePack serialization for dataclasses, datetimes, or numpy arrays. The medium install friction (compiled Rust dependency) is offset by pre-built wheels for common platforms and the performance gain over pure-Python alternatives.
Install
ormsgpack on PyPI
Before you install
Medium install friction due to compiled Rust components; pre-built wheels cover common platforms (CPython 3.10–3.12, macOS, Linux, Windows, ARM), but source builds require Rust 1.81 or newer and maturin. Repository is active with recent commits and no known vulnerabilities.
Requires Python 3.10 or newer. Source builds require Rust 1.81 or newer and maturin.
License in practice
Licensed under Apache-2.0 OR MIT (permissive dual license), allowing use in both open-source and proprietary projects with minimal restrictions.
Quickstart
import ormsgpack
import datetime
event = {"type": "put", "time": datetime.datetime(1970, 1, 1)}
packed = ormsgpack.packb(event)
unpacked = ormsgpack.unpackb(packed)
Verify before relying
- Performance benchmarks against standard msgpack or other serializers in real-world workloads
- Memory overhead or limits for very large objects or arrays
- Compatibility guarantees with different MessagePack protocol versions
- How datetime objects are formatted in the packed output
Package facts
| License | Apache-2.0 OR MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 208 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 52,745,996 / month, #557 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: GraalPyProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: RustTyping :: Typed |
Evidence: ormsgpack-1.12.2-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; ormsgpack-1.12.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; ormsgpack-1.12.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; ormsgpack-1.12.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; ormsgpack-1.12.2-cp310-cp310-musllinux_1_2_aarch64.whl; ormsgpack-1.12.2-cp310-cp310-musllinux_1_2_armv7l.whl; ormsgpack-1.12.2-cp310-cp310-musllinux_1_2_x86_64.whl; ormsgpack-1.12.2-cp310-cp310-win_amd64.whl; ormsgpack-1.12.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; ormsgpack-1.12.2-cp311-cp311-musllinux_1_2_aarch64.whl; ormsgpack-1.12.2-cp311-cp311-musllinux_1_2_armv7l.whl; ormsgpack-1.12.2-cp311-cp311-musllinux_1_2_x86_64.whl; ormsgpack-1.12.2-cp311-cp311-win_amd64.whl; ormsgpack-1.12.2-cp311-cp311-win_arm64.whl; ormsgpack-1.12.2-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; ormsgpack-1.12.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; ormsgpack-1.12.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “fast binary serialization”
- ormsgpackormsgpack is a fast MessagePack serialization library for Python that…
- cborSerializes and deserializes data in CBOR (Concise Binary Object…
- aliyun-log-fastpbSerializes Aliyun Log data structures to protobuf bytes using…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
msgpack serializes and deserializes Python objects to and from MessagePack's efficient binary format, supporting both one-shot and streaming operations with optional custom type handlers.
orjson is a fast JSON serialization and deserialization library that replaces Python's standard json module with native support for dataclasses, datetime, numpy arrays, and UUID objects.
Install it if you need faster JSON performance or native serialization of dataclasses, datetime, or numpy objects.
u-msgpack-python serializes and deserializes data in MessagePack format, a compact binary protocol compatible with Python 2, Python 3, CPython, and PyPy.
MessagePack serialization and deserialization for Python; this package is deprecated and should not be used—install msgpack instead.
msgspec encodes and decodes JSON, MessagePack, YAML, and TOML with built-in schema validation using Python type annotations, optimized for speed with no runtime dependencies.
msgspec-m is a fast serialization and validation library supporting JSON, MessagePack, YAML, and TOML with zero-cost schema validation using Python type annotations.
However, be aware that it receives only minimal maintenance and packaging updates—not new features—so evaluate whether upstream msgspec or the original fork better…
See also msgpack-numpy-opentensor · flask-orjson · msgpack-numpy · srsly