An ultra-fast JSON encoder and decoder written in C with Python bindings, designed for high-performance data serialization.
UltraJSON is a high-performance JSON encoder and decoder library written in pure C with Python bindings. It provides a fast alternative to Python's standard json module, significantly accelerating JSON serialization and deserialization tasks in Python applications.
Python developers working with large-scale JSON data processing, such as web APIs, data pipelines, or performance-sensitive applications where JSON parsing speed is critical.
Developers choose UltraJSON for its exceptional speed, achieved through optimized C implementation, while maintaining compatibility with the standard Python json API for easy integration.
Ultra fast JSON decoder and encoder written in C with Python bindings
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show encoding speeds up to 18,282 calls/sec for arrays with doubles, significantly faster than the standard json module's 5,935 calls/sec, due to optimized C implementation.
Acts as a drop-in replacement for the standard json API, allowing easy adoption in existing codebases by simply swapping imports without major code changes.
Provides configurable settings like encode_html_chars and ensure_ascii to control output format, such as disabling ASCII encoding for direct UTF-8 support in JSON strings.
Despite maintenance mode, critical bugs and security issues are still addressed, making it a stable choice for legacy systems with minimal risk of breaking changes.
The project is in maintenance-only mode, meaning no new features will be added, and users are explicitly encouraged to migrate to alternatives like orjson for ongoing support.
The README warns that the architecture is fundamentally ill-suited to changes without introducing security risks like buffer overflows, making it less secure for sensitive applications.
Benchmarks indicate that orjson is up to 4x faster in many scenarios, such as encoding arrays with doubles, reducing UltraJSON's relevance for performance-focused new projects.