# What changed in orjson

> 18 changes in orjson 3 from its official release notes, upgrade guides and advisories: 7 breaking, 1 security, 1 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/pypi/orjson/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## orjson 3

### Breaking changes

- PyPI wheels are no longer published for Windows x86/i686. (3.13.0) — [release notes](https://github.com/ijl/orjson/releases/tag/3.13.0)
- PyPI wheels are no longer published for ppc64le and s390x. (3.12.0) — [release notes](https://github.com/ijl/orjson/releases/tag/3.12.0)
- Building now requires Rust 1.95 or later instead of 1.89. (3.11.9) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.9)
- Float serialization uses a faster library; positive exponents are now written with a plus sign, such as 1.2e+30 instead of 1.2e30. (3.11.7) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.7)
- Python 3.9 is no longer supported. (3.11.6) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.6)
- Building orjson now requires Rust 1.89 or later instead of 1.85. (3.11.6) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.6)
- Building now requires a C compiler. (3.11.4) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.4)

### Security

- orjson does not limit recursion for deeply nested JSON documents (3.11.6) — [security advisory](https://github.com/advisories/GHSA-HX9Q-6W63-J58V)

### New APIs and options

- ABI compatibility was added for CPython 3.15 alpha 1. (3.11.4) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.4)

### Behavior and default changes

- Serializes the Python 3.15 built-in frozendict type identically to dict. (3.13.0) — [release notes](https://github.com/ijl/orjson/releases/tag/3.13.0)

### Tooling

- Wheels are published for Python 3.15 and later, with manylinux_2_39 targeted instead of manylinux_2_17. (3.12.0) — [release notes](https://github.com/ijl/orjson/releases/tag/3.12.0)
- PyPI wheels are published for 3.14 and for manylinux i686, arm7, ppc64le, and s390x. (3.11.4) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.4)

### Fixes and other changes

- Fixes building on Rust 1.95. (3.11.9) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.9)
- Adds ABI compatibility with CPython 3.15 alpha 5 free-threading. (3.11.7) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.7)
- ABI compatibility is added for CPython 3.15 alpha 5. (3.11.6) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.6)
- orjson now includes code licensed under MPL-2.0, which may affect licensing decisions. (3.11.6) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.6)
- Fixes a sporadic crash when serializing deeply nested lists of dictionaries. (3.11.6) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.6)
- Building on unsupported Python versions now shows a simple error message instead of a traceback. (3.11.5) — [release notes](https://github.com/ijl/orjson/releases/tag/3.11.5)
