NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #153 most downloaded on PyPI
Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
Last release 1 months ago
14 Aug 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
150 releases · first in 2018
Serialization implementation substantially rewritten.
manylinux_2_39 (2024) is targeted instead of manylinux_2_17 (2012).Build now depends on Rust 1.95 or later instead of 1.89.
One column per quarter.
Build and compatibility improvements.
Use a faster library to serialize float . Users with byte-exact regression tests should note positive exponents are now written using a + , e.g., 1.2e
float. Users with byte-exact regression+, e.g.,1.2e+30 instead of 1.2e30. Both formats are spec-compliant.orjson now includes code licensed under the Mozilla Public License 2.0 (MPL-2.0).
list of dict.Show simple error message instead of traceback when attempting to build on unsupported Python versions.
ABI compatibility with CPython 3.15 alpha 1.
Fix PyPI project metadata when using maturin 1.9.2 or later.
Fix build using Rust 1.89 on amd64.
Publish PyPI wheels for CPython 3.14.
str on big-endian architectures.str on big-endian architectures. This was introduced in 3.11.0.Use a deserialization buffer allocated per request instead of a shared buffer allocated on import.
Fix incorrect escaping of the vertical tabulation character. This was introduced in 3.10.17.
Publish PyPI Windows aarch64/arm64 wheels.
Improve performance of serialization on amd64 machines with AVX-512.
Publish PyPI manylinux aarch64 wheels built and tested on aarch64.
Specify build system dependency on maturin>=1,<2 again.
maturin>=1,<2 again.PyMem_Malloc() and similar APIs for integration
with pymalloc, mimalloc, and tracemalloc.Fix compatibility with maturin introducing a breaking change in 1.8.0 and specify a fixed version of maturin. Projects relying on any previous version…
Publish PyPI manylinux i686 wheels.
Publish PyPI wheels with trusted publishing and PEP 740 attestations.
Fix int serialization on s390x. This was introduced in 3.10.8.
int serialization on s390x. This was introduced in 3.10.8.Fix int serialization on 32-bit Python 3.8, 3.9, 3.10. This was introduced in 3.10.8.
int serialization on 32-bit Python 3.8, 3.9, 3.10. This was
introduced in 3.10.8.int serialization no longer chains OverflowError to the the __cause__ attribute of orjson.JSONEncodeError when range exceeded.
int serialization no longer chains OverflowError to the
the __cause__ attribute of orjson.JSONEncodeError when range exceeded.Improve performance of stable Rust amd64 builds.
### Changed - Improve performance.
### Changed - Improve performance.
### Changed - Improve performance.
manylinux amd64 builds include runtime-detected AVX-512 str implementation.
manylinux amd64 builds include runtime-detected AVX-512 str
implementation.Fix crash serializing str introduced in 3.10.1.
str introduced in 3.10.1.Serializing numpy.ndarray with non-native endianness raises orjson.JSONEncodeError.
numpy.ndarray with non-native endianness raises
orjson.JSONEncodeError.Support serializing numpy.float16 (numpy.half).
numpy.float16 (numpy.half).Implement recursion limit of 1024 on orjson.loads().
orjson.loads().str formatting SIMD path to avoid crash.Fix crash serializing str introduced in 3.9.11.
str introduced in 3.9.11.Serialization str escape uses only 128-bit SIMD.
str escape uses only 128-bit SIMD.musllinux_1_2 instead of musllinux_1_1 wheels.Minimal musllinux_1_1 build due to sporadic CI failure.
musllinux_1_1 build due to sporadic CI failure.musllinux_1_1 build due to sporadic CI failure.Improve performance of serializing. str is significantly faster. Documents using dict, list, and tuple are somewhat faster.
str is significantly faster. Documents
using dict, list, and tuple are somewhat faster.Fix debug assert failure on 3.12 --profile=dev build.
--profile=dev build.orjson module metadata explicitly marks subinterpreters as not supported.
orjson module metadata explicitly marks subinterpreters as not supported.### Changed - Improve performance. - Drop support for Python 3.7.
Fix crash in orjson.loads() due to non-reentrant handling of persistent buffer. This was introduced in 3.9.3.
orjson.loads() due to non-reentrant handling of persistent
buffer. This was introduced in 3.9.3.Fix numpy reference leak on unsupported array dtype.
Remove futex from module import and initialization path.
Fix hash builder using default values.
Fix compatibility with CPython 3.12.
Fix the __cause__ exception on orjson.JSONEncodeError possibly being denormalized, i.e., of type str instead of Exception.
__cause__ exception on orjson.JSONEncodeError possibly being
denormalized, i.e., of type str instead of Exception.Fix memory leak on chained tracebacks of exceptions raised in default. This was introduced in 3.8.12.
default. This
was introduced in 3.8.12.orjson.Fragment includes already-serialized JSON in a document.
orjson.Fragment includes already-serialized JSON in a document.PyPI manylinux wheels are compiled for x86-64 instead of x86-64-v2.
manylinux wheels are compiled for x86-64 instead of x86-64-v2.Source distribution contains all source code required for an offline build.
MACOSX_DEPLOYMENT_TARGET of 10.15 instead of 11.Exceptions raised in default are now chained as the __cause__ attribute on orjson.JSONEncodeError.
default are now chained as the __cause__ attribute
on orjson.JSONEncodeError.orjson.loads() on an empty document has a specific error message.
orjson.loads() on an empty document has a specific error message.manylinux_2_28_x86_64 wheels are compiled for x86-64-v2.universal2 and compiled for
x86-64-v2 and apple-m1.Fix compatibility with CPython 3.12.0a7.
Fix parallel initialization of orjson.
### Changed - Publish ppc64le wheels.
Use serialization backend introduced in 3.8.4 only on well-tested platforms such as glibc, macOS by default.
Fix crash serializing when using musl libc.
python-dateutil optional in tests.Fix orjson.dumps() invalid output on Windows.
orjson.dumps() invalid output on Windows.### Changed - Improve performance.
orjson.dumps() accepts option=None per Optional[int] type.
orjson.dumps() accepts option=None per Optional[int] type.Fix tests on 32-bit for numpy.intp and numpy.uintp.
numpy.intp and numpy.uintp.Build maintenance for Python 3.11.
Your coding agent can read these notes before it upgrades. Set up the MCP server →