Metadata-Version: 2.1
Name: yyjson
Version: 1.0.0
Summary: yyjson bindings for python
Home-page: http://github.com/TkTech/py_yyjson
Author: Tyler Kennedy
Author-email: tk@tkte.ch
Keywords: json,yyjson
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Requires-Python: >3.4
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: release
Requires-Dist: sphinx ; extra == 'release'
Requires-Dist: ghp-import ; extra == 'release'
Requires-Dist: bumpversion ; extra == 'release'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'

![PyPI - License](https://img.shields.io/pypi/l/yyjson.svg?style=flat-square)

![Tests](https://github.com/TkTech/py_yyjson/workflows/Run%20tests/badge.svg)



# py_yyjson



Python bindings for the excellent [yyjson][] project.



## Documentation



Find the latest documentation at https://py_yyjson.tkte.ch.



[yyjson]: https://github.com/ibireme/yyjson



## 💡 Why should I use this?



Like everything, it has pros and cons versus other Python JSON parsers. Some of

the pros:



- Good configurable support for **non-standard JSON**, such as comments, NaN,

  Infinity, and numbers of any size.

- **Fast**. yyjson has excellent performance, especially compared to Python's

  built-in JSON library.

- Support for JSON Merge-Patch.

 

For more technical users, some additional pros:



- Building from source is architecture independent (ex, no dependency on SIMD 

  instructions) and requires just a C89 compiler.

- Uses the Python memory allocator, so Python memory profiling tool will work

  as expected.



## 🎉 Installation



If binary wheels are available for your platform, you can install from pip

with no further requirements:



    pip install yyjson



Binary wheels are available for the following:



|                  | py3.5 | py3.6 | py3.7 | py3.8 | py3.9 | pypy3 |

| ---------------- | ----- | ----- | ----- | ----- | ----- | ----- |

| OS X (x86_64)    | y     | y     | y     | y     | y     | y     |

| Windows (x86_64) | y     | y     | y     | y     | y     | y     |

| Linux (x86_64)   | y     | y     | y     | y     | y     | y     |



If binary wheels are not available for your platform, you'll need any

C89-compatible compiler.



    pip install 'yyjson' --no-binary :all:



## ⚗ Development and Testing



To install test requirements, use:



    pip install -e ".[test]"



To run the tests, just type `pytest`. To prepare for a release or to rebuild

documentation, you need a few extra dependencies:



    pip install -e ".[release]"



You can then rebuild the documentation by running `make html` within the

`docs/` directory.



## 📈 Benchmarks



py_yyjson compares well against most libraries. The full benchmarks can be

found in its sister project [json_benchmark][].





[pysimdjson]: https://github.com/TkTech/pysimdjson

[json_benchmark]: https://github.com/tktech/json_benchmark

