Skip to main content

A high-performance Python JSON library that fully leverages modern processor capabilities.

Project description

ssrJSON

PyPI - Version PyPI - Wheel codecov

A SIMD boosted high-performance and correct Python JSON parsing library that fully leverages modern processor capabilities.

Introduction

ssrJSON is a Python JSON library that leverages modern hardware capabilities to achieve peak performance, implemented primarily in C with some components written in C++. It offers a fully compatible interface to Python’s standard json module, making it a seamless drop-in replacement, while providing exceptional performance for JSON encoding and decoding.

How Fast is ssrJSON?

TL;DR: ssrJSON is faster than or nearly as fast as orjson (which announces itself as the fastest Python library for JSON) on most benchmark cases.

ssrJSON is the first JSON parsing library that handles non-ASCII str object directly using SIMD without any translation between str and it's UTF-8 encoding. Other third-party Python JSON libraries are slow when handling non-ASCII strings without UTF-8 cache. (simple_object_zh.json)

Real-world non-ASCII case (twitter.json):

ASCII case (github.json):

Floats (canada.json):

Numbers (mesh.json):

ssrjson.dumps() is about 4x-25x as fast as json.dumps() (Python3.13, x86-64, AVX2). ssrjson.loads() is about 2x-8x as fast as json.loads() for str input and is about 2x-8x as fast as json.loads() for bytes input (Python3.13, x86-64, AVX2). ssrJSON also provides ssrjson.dumps_to_bytes(), which encode Python objects directly to bytes object using SIMD instructions, similar to orjson.dumps but without calling slow CPython functions to do the UTF-8 encoding. Typically, ssrJSON is capable of processing non-ASCII strings directly without invoking any slow CPython UTF-8 encoding and decoding interfaces, eliminating the need for intermediate representations. Furthermore, the underlying implementation leverages SIMD acceleration to optimize this process. Details of benchmarking can be found in the benchmark repository. If you wish to run the benchmark tests yourself, you can execute the following commands:

pip install ssrjson-benchmark
python -m ssrjson_benchmark

This will generate a PDF report of the results. If you choose to, you may submit this report to the benchmark repository, allowing others to view the performance metrics of ssrJSON on your device.

Design Goal

The design goal of ssrJSON is to provide a straightforward and highly compatible approach to replace the inherently slower Python standard JSON encoding and decoding implementation with a significantly more efficient and high-performance alternative. If your module exclusively utilizes dumps and loads, you can replace the current JSON implementation by importing ssrJSON as import ssrjson as json. To facilitate this, ssrJSON maintains compatibility with the argument formats of json.dumps and json.loads; however, it does not guarantee identical results to the standard JSON module, as many features are either intentionally omitted or not yet supported. For further information, please refer to the section Features.

Implementation Details

Encoding

The encoding performance of JSON libraries is not significantly limited by CPython, resulting in a very high potential maximum. During string encoding, ssrJSON extensively utilizes SIMD instructions to accelerate copying and conversion operations. The implementation of dumps_to_bytes also tackles challenges related to UTF-8 encoding. ssrJSON includes a comprehensive UTF-8 encoding algorithm optimized for all supported SIMD features as well as Python’s internal string representation format (PyCompactUnicodeObject). For floating-point number encoding, ssrJSON employs a slightly modified version of the DragonBox algorithm, well-known for its high-performance floating-point conversions. When encoding integers, ssrJSON adapts the integer encoding approach from yyjson, a highly optimized C-language JSON parsing library.

Decoding

The main performance bottleneck in JSON decoding is the speed of creating Python objects. To address this, ssrJSON adopts the short-key caching mechanism from orjson, which greatly reduces the overhead of creating Python string objects. For string handling, when the input is a str type, ssrJSON applies SIMD optimizations similar to those used in encoding, speeding up the decoding process. For bytes inputs, ssrJSON uses a customized version of yyjson’s string decoding algorithm. Beyond string handling, ssrJSON extensively leverages yyjson’s codebase, including its numeric decoding algorithms and core decoding logic.

Current Status

ssrJSON is currently operational, although some potentially useful features have yet to be implemented. The development of ssrJSON is still actively ongoing, and your code contributions are highly appreciated.

How To Install

Pre-built wheels are available on PyPI.

pip install ssrjson

Note: ssrJSON requires at least SSE4.2 on x86-64 (x86-64-v2), or aarch64. 32-bit platforms are not supported. ssrJSON does not work with Python implementations other than CPython. Currently supported CPython versions are 3.10, 3.11, 3.12, 3.13, 3.14, 3.15. For Python >= 3.15, you need to build it from source.

Build From Source

Since ssrJSON utilizes Clang's vector extensions, it requires compilation with Clang and cannot be compiled in GCC or pure MSVC environments. On Windows, clang-cl can be used for this purpose. Build can be easily done by the following commands (make sure CMake, Clang and Python are already installed)

# On Linux:
# export CC=clang
# export CXX=clang++
mkdir build
cmake -S . -B build  # On Windows, configure with `cmake -T ClangCL`
cmake --build build

Usage

Basic

>>> import ssrjson
>>> ssrjson.dumps({"key": "value"})
'{"key":"value"}'
>>> ssrjson.loads('{"key":"value"}')
{'key': 'value'}
>>> ssrjson.dumps_to_bytes({"key": "value"})
b'{"key":"value"}'
>>> ssrjson.loads(b'{"key":"value"}')
{'key': 'value'}

Indent

ssrJSON only supports encoding with indent = 2, 4 or no indent (indent=0). When indent is used, a space is inserted between each key and value.

>>> import ssrjson
>>> ssrjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]})
'{"a":"b","c":{"d":true},"e":[1,2]}'
>>> print(ssrjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]}, indent=2))
{
  "a": "b",
  "c": {
    "d": true
  },
  "e": [
    1,
    2
  ]
}
>>> print(ssrjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]}, indent=4))
{
    "a": "b",
    "c": {
        "d": true
    },
    "e": [
        1,
        2
    ]
}
>>> ssrjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]}, indent=3)
Traceback (most recent call last):
  File "<python-input>", line 1, in <module>
    ssrjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]}, indent=3)
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: indent must be 0, 2, or 4

Other Arguments Supported by Python's json

Arguments like ensure_ascii, parse_float provided by json can be recognized but ignored by design.

The functionality of object_hook in json.loads will be supported in future.

Features

Generally, ssrjson.dumps behaves like json.dumps with ensure_ascii=False, and ssrjson.loads behaves like json.loads. Below we explain some feature details of ssrJSON, which might be different from json module or other third-party JSON libraries.

Strings

Code points within the range [0xd800, 0xdfff] cannot be represented in UTF-8 encoding, and the standard JSON specification typically prohibits the presence of such characters. However, since Python's str type is not encoded in UTF-8, ssrJSON aims to maintain compatibility with the Python json module's behavior, while other third-party Python JSON libraries may complain about this. In contrast, for the dumps_to_bytes function, which encodes output in UTF-8, the inclusion of these characters in the input is considered invalid.

>>> s = chr(0xd800)
>>> (json.dumps(s, ensure_ascii=False) == '"' + s + '"', json.dumps(s, ensure_ascii=False))
(True, '"\ud800"')
>>> (ssrjson.dumps(s) == '"' + s + '"', ssrjson.dumps(s))
(True, '"\ud800"')
>>> ssrjson.dumps_to_bytes(s)
Traceback (most recent call last):
  File "<python-input>", line 1, in <module>
    ssrjson.dumps_to_bytes(s)
    ~~~~~~~~~~~~~~~~~~~~~~^^^
ssrjson.JSONEncodeError: Cannot encode unicode character in range [0xd800, 0xdfff] to utf-8
>>> json.loads(json.dumps(s, ensure_ascii=False)) == s
True
>>> ssrjson.loads(ssrjson.dumps(s)) == s
True

Integers

ssrjson.dumps can only handle integers that can be expressed by either uint64_t or int64_t in C.

>>> ssrjson.dumps(-(1<<63)-1)
Traceback (most recent call last):
  File "<python-input>", line 1, in <module>
    ssrjson.dumps(-(1<<63)-1)
    ~~~~~~~~~~~~~^^^^^^^^^^^^
ssrjson.JSONEncodeError: convert value to long long failed
>>> ssrjson.dumps(-(1<<63))
'-9223372036854775808'
>>> ssrjson.dumps((1<<64)-1)
'18446744073709551615'
>>> ssrjson.dumps(1<<64)
Traceback (most recent call last):
  File "<python-input>", line 1, in <module>
    ssrjson.dumps(1<<64)
    ~~~~~~~~~~~~~^^^^^^^
ssrjson.JSONEncodeError: convert value to unsigned long long failed

ssrjson.loads treats overflow integers as float objects.

>>> ssrjson.loads('-9223372036854775809')  # -(1<<63)-1
-9.223372036854776e+18
>>> ssrjson.loads('-9223372036854775808')  # -(1<<63)
-9223372036854775808
>>> ssrjson.loads('18446744073709551615')  # (1<<64)-1
18446744073709551615
>>> ssrjson.loads('18446744073709551616')  # 1<<64
1.8446744073709552e+19

Floats

For floating-point encoding, ssrJSON employs a slightly modified version of the Dragonbox algorithm. Dragonbox is a highly efficient algorithm for converting floating-point to strings, typically producing output in scientific notation. ssrJSON has partially adapted this algorithm to enhance readability by outputting a more user-friendly format when no exponent is present.

Encoding and decoding math.inf are supported. ssrjson.dumps outputs the same result as json.dumps. The input of ssrjson.loads should be "infinity" with lower or upper cases (for each character), and cannot be "inf".

>>> json.dumps(math.inf)
'Infinity'
>>> ssrjson.dumps(math.inf)
'Infinity'
>>> ssrjson.loads("[infinity, Infinity, InFiNiTy, INFINITY]")
[inf, inf, inf, inf]

The case of math.nan is similar.

>>> json.dumps(math.nan)
'NaN'
>>> ssrjson.dumps(math.nan)
'NaN'
>>> ssrjson.loads("[nan, Nan, NaN, NAN]")
[nan, nan, nan, nan]

Limitations

Please note that ssrJSON is currently in the beta stage of development.

Several commonly used features are still under development, including serialization of subclasses of str, the object_hook functionality, and correct error location reporting during decoding. Additionally, ssrJSON will not support encoding or decoding of third-party data structures.

Contributing

Contributions are welcome! Please open issues or submit pull requests for bug fixes, performance improvements, or new features. There will soon be a development documentation.

License

This project is licensed under the MIT License. Licenses of other repositories are under licenses directory.

Acknowledgments

We would like to express our gratitude to the outstanding libraries and their authors:

  • CPython
  • yyjson: ssrJSON draws extensively from yyjson’s highly optimized implementations, including the core decoding logic, the decoding of bytes objects, the integer encoding and number decoding routines.
  • orjson: ssrJSON references parts of orjson’s SIMD-based ASCII string encoding and decoding algorithms, as well as the key caching mechanism. Additionally, ssrJSON utilizes orjson’s pytest framework for testing purposes.
  • Dragonbox: ssrJSON employs Dragonbox for high-performance floating-point encoding.
  • xxHash: ssrJSON leverages xxHash to efficiently compute hash values for key caching.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssrjson-0.0.6.tar.gz (378.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ssrjson-0.0.6-cp314-cp314-win_amd64.whl (647.2 kB view details)

Uploaded CPython 3.14Windows x86-64

ssrjson-0.0.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (651.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

ssrjson-0.0.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (211.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

ssrjson-0.0.6-cp313-cp313-win_amd64.whl (632.4 kB view details)

Uploaded CPython 3.13Windows x86-64

ssrjson-0.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (651.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ssrjson-0.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (211.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ssrjson-0.0.6-cp312-cp312-win_amd64.whl (633.0 kB view details)

Uploaded CPython 3.12Windows x86-64

ssrjson-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (651.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ssrjson-0.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (211.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ssrjson-0.0.6-cp311-cp311-win_amd64.whl (627.3 kB view details)

Uploaded CPython 3.11Windows x86-64

ssrjson-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (642.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ssrjson-0.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (209.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ssrjson-0.0.6-cp310-cp310-win_amd64.whl (627.2 kB view details)

Uploaded CPython 3.10Windows x86-64

ssrjson-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (642.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ssrjson-0.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (209.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file ssrjson-0.0.6.tar.gz.

File metadata

  • Download URL: ssrjson-0.0.6.tar.gz
  • Upload date:
  • Size: 378.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for ssrjson-0.0.6.tar.gz
Algorithm Hash digest
SHA256 88eb91104ea14ccfc3a59ca68b6630db4ffede9ed6d8a514c45eb9d8e8c68cbb
MD5 a5b397398b19df644aa146a549b9eb16
BLAKE2b-256 b22b1305bd572e81016583fad2ace772d962081faac9421a71e8169f207e3bae

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ssrjson-0.0.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 647.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for ssrjson-0.0.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0b9c3e9c99eac99c3612e2703af4a3820a5310c6f13eba957975844ac793f553
MD5 4e673a7fa5f1f99d3e07e1929f8eacf1
BLAKE2b-256 8a874a24c2cf6bb1f1b831f4b466bb6ea3831cb8b53f4f285b2fe002d9d00521

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e2ec9bf53db04a8f107e033ffeff9d80d119e88a0049c7ae3c29fa4c62dea826
MD5 7070b7164a716c8ac725c4589405da73
BLAKE2b-256 d2a72f71746d254db9273fed65ffcceb60670793bd35106f41a67378ba6b8868

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 11a26bc167ab122f73fd81d9e154baf2781b56b7fcaf0bb14224627f9c0f86cd
MD5 427e472b8de597fb8a03ef7e94114715
BLAKE2b-256 447322381470545b2ec43f5c1900b82078baeedf7fb373cce80f50f612b28558

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ssrjson-0.0.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 632.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for ssrjson-0.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 66a63867b15cb7b532e3554bb6dba0f112ce55c0445257ceb2bc9de4a68f6770
MD5 b3d28f86ecdc9a7e1d0db9a7ef13f047
BLAKE2b-256 855d382eac70864a643f219f630efc967ba449cff30b8146a02a8d9c856190e5

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bb83d668178dcbfdf1b0b98420e567b273e059148e7d77dce522170ded1cbe7
MD5 a04fab249ac877a98cd3d8165cb963ba
BLAKE2b-256 c125fbb36548331eecbaa54c52a745615c37dc24b2db80944f1fe1b0afa2cc8f

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 13b4f75851b6be5a1df5468bdeea8f26dd05025eb3780860b23b404d043c1f25
MD5 6076ea10065c5d5039c05ebcf70a5dc0
BLAKE2b-256 eea041a03c5772dbd75c8311547d2c7984bd0a598e2addfeed130981b9f97b80

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ssrjson-0.0.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 633.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for ssrjson-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b1f217f1df92d73c8b3e6eab996da7467e5b12541f3eb951bef3d3f48c2fcf2a
MD5 b611aa8ba8cd8618182607d387f0abe3
BLAKE2b-256 2dc471105e68d02b05c1ae1709b93e4ca020e57efcfe56668675d10912c7cbff

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f00538206f129f92d11c8b61d983b117b8621cb8d9d9202024bd748460767702
MD5 aa91f1b34b6830f63015f8cc9ab07934
BLAKE2b-256 b9ffdc24a0f9777304b5385c4320d1bc3c6f8ab34dcb346a4eb0ba3dd966b5c8

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0bcecfda972ed1b84e456eb386fe2fcf66019e74eee9f135a03d7b55dc8fbc70
MD5 cbf8477dc7b4d6958bb84d350ae1fafa
BLAKE2b-256 9af9c7cde71dab7d3d3a629d94d3e7b711e8b32907193b5a797df63c538ea7db

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ssrjson-0.0.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 627.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for ssrjson-0.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 211991d81d93a1e24f0f414363e5ec0b2255003c4f10132a380dee803338f41f
MD5 3537f582c467adc4f888abeface0d7f7
BLAKE2b-256 fdf6749bd6019ed057b887a9fed995afb9d173724e20af13d5ad543784c25bdd

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6de59f619055cc2e36e63bbeab439bf455116ac4dd5de92d73ee93aacac0918
MD5 f42aef33124177b924e38511a492261e
BLAKE2b-256 4f9f927423e0d506f97f7824cd50eb448a78b414856029c0df98109f4886889e

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 630f782d987a9e3fbcacfa9da3bfcfa57d55c2c1fc1170838df1893de02fbbe6
MD5 24c55207688f6cd6f5a30bfd862d3d78
BLAKE2b-256 642ba75cb8017e44b980980f626fc9d7d3578ccaad17611586bf1cf77e0141f6

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ssrjson-0.0.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 627.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for ssrjson-0.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9d34545cb49e7fd786846a9bc6d838b70b2d311dc27349f174654d271d6d4b6e
MD5 09a324571f50969d9c4d1565fdedafe2
BLAKE2b-256 eddd55285cb6287028a5bb7d66c196c322c966195ce979ef9e2e6869fdc466da

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f5c74716acbade9fdc0f90ceb71cae0ee41a0e32cfdf0e5f5d4f72f92fb15a5d
MD5 22dc0132e2246d2a921488dc5d709dab
BLAKE2b-256 586fdfdf41fae590560bcf3fb2509644a314f233ad589d85b2085ec9e872c933

See more details on using hashes here.

File details

Details for the file ssrjson-0.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ssrjson-0.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3225f7088f5206032b5c309c51f05be95db8bb551ed4100705f23c27ae20c80a
MD5 310f28e2c0a5121f316b2a0be89d8ca2
BLAKE2b-256 34628c15ebf8d74b92abe9fc2c41db75721868c03f6cbc243a0dc5b6fbcd1080

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page