Fast JSON schema for Python
python-rapidjson
Fast JSON schema for Python | python-rapidjson | |
---|---|---|
1 | 1 | |
468 | 515 | |
0.0% | 0.8% | |
6.8 | 8.4 | |
5 months ago | 5 months 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.
ultrajson - Ultra fast JSON decoder and encoder written in C with Python bindings
jsonschema - A high-performance JSON Schema validator for Rust
jsons - 🐍 A Python lib for (de)serializing Python objects to/from JSON
cattrs - Composable custom class converters for attrs, dataclasses and friends.
RDFLib plugin providing JSON-LD parsing and serialization - JSON-LD parser and serializer plugins for RDFLib