|Fast JSON schema for Python
|27 days ago
|25 days ago
|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
8 projects | /r/Python | 31 Mar 2022
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.
How to Design Better APIs
7 projects | news.ycombinator.com | 11 Mar 2022
> * 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."
What are some alternatives?
marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.
jsonschema - JSON Schema validation library
cattrs - Composable custom class converters for attrs.
ultrajson - Ultra fast JSON decoder and encoder written in C with Python bindings
serpy - ridiculously fast object serialization
lupin is a Python JSON object mapper - Python document object mapper (load python object from JSON and vice-versa)
pysimdjson - Python bindings for the simdjson project.
Trafaret - Ultimate transformation library that supports validation, contexts and aiohttp.
jsons - 🐍 A Python lib for (de)serializing Python objects to/from JSON
PyValico - Small python wrapper around https://github.com/rustless/valico