The existing JSON bullets mostly emphasize speed or bindings (e.g., RapidJSON/simdjson/ujson). orjson explicitly positions itself as both very fast and more correct than the stdlib json and other third-party libs.
Native serialization of common “pain” types (without custom hooks everywhere). orjson natively serializes things like dataclass, datetime/date/time, numpy, and UUID—types that otherwise often require default= handlers or extra conversion steps.
A forward-looking replacement for UltraJSON/ujson. UltraJSON (ujson) is in “maintenance-only mode” and its own maintainers encourage migration to orjson for both performance and security-risk reasons. That’s a strong differentiator relative to ultrajson already listed.
Not a drop-in json replacement (important practical distinction). orjson.dumps() returns bytes, not str, which makes it meaningfully different from many alternatives in how you integrate it (HTTP responses, file writing, etc.). This is a “gotcha” but also part of its design/performance profile.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/vinta/awesome-python/pull/2843
**Author:** [@JinyangWang27](https://github.com/JinyangWang27)
**Created:** 1/11/2026
**Status:** ✅ Merged
**Merged:** 1/12/2026
**Merged by:** [@vinta](https://github.com/vinta)
**Base:** `master` ← **Head:** `master`
---
### 📝 Commits (1)
- [`a085ede`](https://github.com/vinta/awesome-python/commit/a085ede8af706d9a57d58bd02637cde8cd56ede5) Add orjson library to serialization section
### 📊 Changes
**1 file changed** (+1 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `README.md` (+1 -0)
</details>
### 📄 Description
## Checklist
- [X] One link per Pull Request
- [X] PR title format: `Add project-name`
- [X] Entry format: `* [project-name](url) - Description ending with period.`
- [X] Description is concise and short
## Why This Project Is Awesome
Which criterion does it meet? (pick one)
- [X] **Industry Standard** - The go-to tool for a specific use case
- [ ] **Rising Star** - 5000+ stars in < 2 years, significant adoption
- [ ] **Hidden Gem** - Exceptional quality, solves niche problems elegantly
Explain:
## How It Differs
The existing JSON bullets mostly emphasize speed or bindings (e.g., RapidJSON/simdjson/ujson). orjson explicitly positions itself as both very fast and more correct than the stdlib json and other third-party libs.
Native serialization of common “pain” types (without custom hooks everywhere). orjson natively serializes things like dataclass, datetime/date/time, numpy, and UUID—types that otherwise often require default= handlers or extra conversion steps.
A forward-looking replacement for UltraJSON/ujson. UltraJSON (ujson) is in “maintenance-only mode” and its own maintainers encourage migration to orjson for both performance and security-risk reasons. That’s a strong differentiator relative to ultrajson already listed.
Not a drop-in json replacement (important practical distinction). orjson.dumps() returns bytes, not str, which makes it meaningfully different from many alternatives in how you integrate it (HTTP responses, file writing, etc.). This is a “gotcha” but also part of its design/performance profile.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/2843
Author: @JinyangWang27
Created: 1/11/2026
Status: ✅ Merged
Merged: 1/12/2026
Merged by: @vinta
Base:
master← Head:master📝 Commits (1)
a085edeAdd orjson library to serialization section📊 Changes
1 file changed (+1 additions, -0 deletions)
View changed files
📝
README.md(+1 -0)📄 Description
Checklist
Add project-name* [project-name](url) - Description ending with period.Why This Project Is Awesome
Which criterion does it meet? (pick one)
Explain:
How It Differs
The existing JSON bullets mostly emphasize speed or bindings (e.g., RapidJSON/simdjson/ujson). orjson explicitly positions itself as both very fast and more correct than the stdlib json and other third-party libs.
Native serialization of common “pain” types (without custom hooks everywhere). orjson natively serializes things like dataclass, datetime/date/time, numpy, and UUID—types that otherwise often require default= handlers or extra conversion steps.
A forward-looking replacement for UltraJSON/ujson. UltraJSON (ujson) is in “maintenance-only mode” and its own maintainers encourage migration to orjson for both performance and security-risk reasons. That’s a strong differentiator relative to ultrajson already listed.
Not a drop-in json replacement (important practical distinction). orjson.dumps() returns bytes, not str, which makes it meaningfully different from many alternatives in how you integrate it (HTTP responses, file writing, etc.). This is a “gotcha” but also part of its design/performance profile.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.