NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #167 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
orjson.dumps() serializes dict keys of type other than str if option=orjson.OPT_NON_STR_KEYS is specified.
orjson.dumps() serializes dict keys of type other than str if
option=orjson.OPT_NON_STR_KEYS is specified.orjson.dumps() serializes numpy.ndarray instances if option=orjson.OPT_SERIALIZE_NUMPY is specified.
orjson.dumps() serializes numpy.ndarray instances if
option=orjson.OPT_SERIALIZE_NUMPY is specified.dataclasses.dataclass attributes that are dict to be effected by
orjson.OPT_SORT_KEYS.One column per quarter.
orjson.dumps() serializes dict instances sorted by keys, equivalent to sort_keys in other implementations, if option=orjson.OPT_SORT_KEYS is specified
orjson.dumps() serializes dict instances sorted by keys, equivalent to
sort_keys in other implementations, if option=orjson.OPT_SORT_KEYS is
specified.dataclasses.dataclass instances without __slots__ now serialize faster.default, in particular documenting the need to raise
an exception if the type cannot be handled.Performance improvements to serializing a list containing elements of the same type.
orjson.loads() rejects floats that do not have a digit following the decimal, e.g., -2., 2.e-3.
orjson.loads() rejects floats that do not have a digit following
the decimal, e.g., -2., 2.e-3.orjson.dumps() serializes uuid.UUID instances if option=orjson.OPT_SERIALIZE_UUID is specified.
orjson.dumps() serializes uuid.UUID instances if
option=orjson.OPT_SERIALIZE_UUID is specified.Specify a text signature for orjson.loads().
orjson.loads().Publish Python 3.8 wheels for macOS and Windows.
The recursion limit of default on orjson.dumps() has been increased from 5 to 254.
default on orjson.dumps() has been increased from
5 to 254.Publish manylinux1 wheels instead of manylinux2010.
manylinux1 wheels instead of manylinux2010.orjson.dumps() serializes dataclasses.dataclass instances if option=orjson.OPT_SERIALIZE_DATACLASS is specified.
orjson.dumps() serializes dataclasses.dataclass instances if
option=orjson.OPT_SERIALIZE_DATACLASS is specified.orjson.dumps() accepts orjson.OPT_UTC_Z to serialize UTC as "Z" instead
of "+00:00".orjson.dumps() accepts orjson.OPT_OMIT_MICROSECONDS to not serialize
the microseconds attribute of datetime.datetime and datetime.time
instances.orjson.loads() accepts bytearray.manylinux2010 wheels instead of manylinux1.Publish Python 3.8 wheel for Linux.
Performance improvements and lower memory usage in deserialization by creating only one str object for repeated map keys.
str object for repeated map keys.Minor performance improvements.
datetime.time objects.Fix inaccurate zero padding in serialization of microseconds on datetime.datetime objects.
datetime.datetime objects.Publish PEP 517 source distribution.
orjson.dumps() raises JSONEncodeError on circular references.### Changed - Performance improvements.
Fix inaccuracy in deserializing some float values, e.g., 31.245270191439438 was parsed to 31.24527019143944. Serialization was unaffected.
float values, e.g.,
31.245270191439438 was parsed to 31.24527019143944. Serialization was
unaffected.orjson.dumps() now serializes datetime.datetime objects without a tzinfo rather than raising JSONEncodeError.
orjson.dumps() now serializes datetime.datetime objects without a
tzinfo rather than raising JSONEncodeError.orjson.loads() uses SSE2 to validate bytes input.
orjson.loads() uses SSE2 to validate bytes input.### Changed - Support Python 3.5.
### Changed - Publish Windows wheel.
orjson.dumps() accepts a default callable to serialize arbitrary types.
orjson.dumps() accepts a default callable to serialize arbitrary
types.orjson.dumps() accepts datetime.datetime, datetime.date,
and datetime.time. Each is serialized to an RFC 3339 string.orjson.dumps(..., option=orjson.OPT_NAIVE_UTC) allows serializing
datetime.datetime objects that do not have a timezone set as UTC.orjson.dumps(..., option=orjson.OPT_STRICT_INTEGER) available to
raise an error on integer values outside the 53-bit range of all JSON
implementations.orjson.dumps() no longer accepts bytes.### Fixed - Handle invalid UTF-8 in str.
Performance improvements of 15-25% on serialization, 10% on deserialization.
Fix memory leak in deserializing dict.
### Changed - Performance improvements.
### Changed - Performance improvements. ### Fixed - Dict key can only be str.
### Fixed - pyo3 bugfix update.
### Added - orjson.dumps() function. - orjson.loads() function.
orjson.dumps() function.orjson.loads() function.Your coding agent can read these notes before it upgrades. Set up the MCP server →