Fast JSON schema for Python
python-rapidjson
Our great sponsors
Fast JSON schema for Python | python-rapidjson | |
---|---|---|
1 | 1 | |
344 | 454 | |
- | 1.1% | |
6.7 | 5.9 | |
3 months ago | about 1 month ago | |
Python | C++ | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Fast JSON schema for Python
-
I wrote okjson - A fast, simple, and pythonic JSON Schema Validator
I had a requirement to process and validate large payloads of JSON concurrently for a web service, initially I implemented it using jsonschema and fastjsonschema but I found the whole JSON Schema Specification to be confusing at times and on top of that wanted better performance. Albeit there are ways to compile/cache the schema, I wanted to move away from the schema specification so I wrote a validation library inspired by the design of tiangolo/sqlmodel (type hints) to solve this problem easier.
python-rapidjson
-
How to Design Better APIs
> * Human readable
Computers are the main consumers of APIs, and ISO 8601 is far from machine-readable.
For example, in Elixir, DateTime.from_iso8601/1 won't recognize "2022-03-12T07:36:08" even though it's valid. I had to rewrite a chunk of Python's radidjson wrapper to 1-9 digit fractional seconds (1).
I'm willing to bet 99% of ISO8601 will fail to handle all aspects of the spec. So when you say "ISO8601" what you're really saying is "our [probably undocumented, and possibly different depending on what system you're hitting] version of the ISO-86001 spec."
(1) https://github.com/python-rapidjson/python-rapidjson/pull/13...
What are some alternatives?
marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.
jsonschema - JSON Schema validation library
cattrs - Complex custom class converters for attrs.
serpy - ridiculously fast object serialization
Trafaret - Ultimate transformation library that supports validation, contexts and aiohttp.
ultrajson - Ultra fast JSON decoder and encoder written in C with Python bindings
lupin is a Python JSON object mapper - Python document object mapper (load python object from JSON and vice-versa)
jsons - 🐍 A Python lib for (de)serializing Python objects to/from JSON
PyValico - Small python wrapper around https://github.com/rustless/valico
RDFLib plugin providing JSON-LD parsing and serialization - JSON-LD parser and serializer plugins for RDFLib