Skip to main content

Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy

Project description

orjson

orjson is a fast, correct JSON library for Python. It benchmarks as the fastest Python library for JSON and is more correct than the standard json library or other third-party libraries. It serializes dataclass, datetime, numpy, and UUID instances natively.

Its features and drawbacks compared to other Python JSON libraries:

  • serializes dataclass instances 40-50x as fast as other libraries
  • serializes datetime, date, and time instances to RFC 3339 format, e.g., "1970-01-01T00:00:00+00:00"
  • serializes numpy.ndarray instances 4-12x as fast with 0.3x the memory usage of other libraries
  • pretty prints 10x to 20x as fast as the standard library
  • serializes to bytes rather than str, i.e., is not a drop-in replacement
  • serializes str without escaping unicode to ASCII, e.g., "好" rather than "\\u597d"
  • serializes float 10x as fast and deserializes twice as fast as other libraries
  • serializes subclasses of str, int, list, and dict natively, requiring default to specify how to serialize others
  • serializes arbitrary types using a default hook
  • has strict UTF-8 conformance, more correct than the standard library
  • has strict JSON conformance in not supporting Nan/Infinity/-Infinity
  • has an option for strict JSON conformance on 53-bit integers with default support for 64-bit
  • does not provide load() or dump() functions for reading from/writing to file-like objects

orjson supports CPython 3.8, 3.9, 3.10, 3.11, and 3.12. It distributes amd64/x86_64, aarch64/armv8, arm7, POWER/ppc64le, and s390x wheels for Linux, amd64 and aarch64 wheels for macOS, and amd64 and i686/x86 wheels for Windows. orjson does not and will not support PyPy. orjson does not and will not support PEP 554 subinterpreters. Releases follow semantic versioning and serializing a new object type without an opt-in flag is considered a breaking change.

orjson is licensed under both the Apache 2.0 and MIT licenses. The repository and issue tracker is github.com/ijl/orjson, and patches may be submitted there. There is a CHANGELOG available in the repository.

  1. Usage
    1. Install
    2. Quickstart
    3. Migrating
    4. Serialize
      1. default
      2. option
      3. Fragment
    5. Deserialize
  2. Types
    1. dataclass
    2. datetime
    3. enum
    4. float
    5. int
    6. numpy
    7. str
    8. uuid
  3. Testing
  4. Performance
    1. Latency
    2. Memory
    3. Reproducing
  5. Questions
  6. Packaging
  7. License

Usage

Install

To install a wheel from PyPI:

pip install --upgrade "pip>=20.3" # manylinux_x_y, universal2 wheel support
pip install --upgrade orjson

To build a wheel, see packaging.

Quickstart

This is an example of serializing, with options specified, and deserializing:

>>> import orjson, datetime, numpy
>>> data = {
    "type": "job",
    "created_at": datetime.datetime(1970, 1, 1),
    "status": "🆗",
    "payload": numpy.array([[1, 2], [3, 4]]),
}
>>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)
b'{"type":"job","created_at":"1970-01-01T00:00:00+00:00","status":"\xf0\x9f\x86\x97","payload":[[1,2],[3,4]]}'
>>> orjson.loads(_)
{'type': 'job', 'created_at': '1970-01-01T00:00:00+00:00', 'status': '🆗', 'payload': [[1, 2], [3, 4]]}

Migrating

orjson version 3 serializes more types than version 2. Subclasses of str, int, dict, and list are now serialized. This is faster and more similar to the standard library. It can be disabled with orjson.OPT_PASSTHROUGH_SUBCLASS.dataclasses.dataclass instances are now serialized by default and cannot be customized in a default function unless option=orjson.OPT_PASSTHROUGH_DATACLASS is specified. uuid.UUID instances are serialized by default. For any type that is now serialized, implementations in a default function and options enabling them can be removed but do not need to be. There was no change in deserialization.

To migrate from the standard library, the largest difference is that orjson.dumps returns bytes and json.dumps returns a str. Users with dict objects using non-str keys should specify option=orjson.OPT_NON_STR_KEYS. sort_keys is replaced by option=orjson.OPT_SORT_KEYS. indent is replaced by option=orjson.OPT_INDENT_2 and other levels of indentation are not supported.

Serialize

def dumps(
    __obj: Any,
    default: Optional[Callable[[Any], Any]] = ...,
    option: Optional[int] = ...,
) -> bytes: ...

dumps() serializes Python objects to JSON.

It natively serializes str, dict, list, tuple, int, float, bool, None, dataclasses.dataclass, typing.TypedDict, datetime.datetime, datetime.date, datetime.time, uuid.UUID, numpy.ndarray, and orjson.Fragment instances. It supports arbitrary types through default. It serializes subclasses of str, int, dict, list, dataclasses.dataclass, and enum.Enum. It does not serialize subclasses of tuple to avoid serializing namedtuple objects as arrays. To avoid serializing subclasses, specify the option orjson.OPT_PASSTHROUGH_SUBCLASS.

The output is a bytes object containing UTF-8.

The global interpreter lock (GIL) is held for the duration of the call.

It raises JSONEncodeError on an unsupported type. This exception message describes the invalid object with the error message Type is not JSON serializable: .... To fix this, specify default.

It raises JSONEncodeError on a str that contains invalid UTF-8.

It raises JSONEncodeError on an integer that exceeds 64 bits by default or, with OPT_STRICT_INTEGER, 53 bits.

It raises JSONEncodeError if a dict has a key of a type other than str, unless OPT_NON_STR_KEYS is specified.

It raises JSONEncodeError if the output of default recurses to handling by default more than 254 levels deep.

It raises JSONEncodeError on circular references.

It raises JSONEncodeError if a tzinfo on a datetime object is unsupported.

JSONEncodeError is a subclass of TypeError. This is for compatibility with the standard library.

If the failure was caused by an exception in default then JSONEncodeError chains the original exception as __cause__.

default

To serialize a subclass or arbitrary types, specify default as a callable that returns a supported type. default may be a function, lambda, or callable class instance. To specify that a type was not handled by default, raise an exception such as TypeError.

>>> import orjson, decimal
>>>
def default(obj):
    if isinstance(obj, decimal.Decimal):
        return str(obj)
    raise TypeError

>>> orjson.dumps(decimal.Decimal("0.0842389659712649442845"))
JSONEncodeError: Type is not JSON serializable: decimal.Decimal
>>> orjson.dumps(decimal.Decimal("0.0842389659712649442845"), default=default)
b'"0.0842389659712649442845"'
>>> orjson.dumps({1, 2}, default=default)
orjson.JSONEncodeError: Type is not JSON serializable: set

The default callable may return an object that itself must be handled by default up to 254 times before an exception is raised.

It is important that default raise an exception if a type cannot be handled. Python otherwise implicitly returns None, which appears to the caller like a legitimate value and is serialized:

>>> import orjson, json, rapidjson
>>>
def default(obj):
    if isinstance(obj, decimal.Decimal):
        return str(obj)

>>> orjson.dumps({"set":{1, 2}}, default=default)
b'{"set":null}'
>>> json.dumps({"set":{1, 2}}, default=default)
'{"set":null}'
>>> rapidjson.dumps({"set":{1, 2}}, default=default)
'{"set":null}'

option

To modify how data is serialized, specify option. Each option is an integer constant in orjson. To specify multiple options, mask them together, e.g., option=orjson.OPT_STRICT_INTEGER | orjson.OPT_NAIVE_UTC.

OPT_APPEND_NEWLINE

Append \n to the output. This is a convenience and optimization for the pattern of dumps(...) + "\n". bytes objects are immutable and this pattern copies the original contents.

>>> import orjson
>>> orjson.dumps([])
b"[]"
>>> orjson.dumps([], option=orjson.OPT_APPEND_NEWLINE)
b"[]\n"
OPT_INDENT_2

Pretty-print output with an indent of two spaces. This is equivalent to indent=2 in the standard library. Pretty printing is slower and the output larger. orjson is the fastest compared library at pretty printing and has much less of a slowdown to pretty print than the standard library does. This option is compatible with all other options.

>>> import orjson
>>> orjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]})
b'{"a":"b","c":{"d":true},"e":[1,2]}'
>>> orjson.dumps(
    {"a": "b", "c": {"d": True}, "e": [1, 2]},
    option=orjson.OPT_INDENT_2
)
b'{\n  "a": "b",\n  "c": {\n    "d": true\n  },\n  "e": [\n    1,\n    2\n  ]\n}'

If displayed, the indentation and linebreaks appear like this:

{
  "a": "b",
  "c": {
    "d": true
  },
  "e": [
    1,
    2
  ]
}

This measures serializing the github.json fixture as compact (52KiB) or pretty (64KiB):

Library compact (ms) pretty (ms) vs. orjson
orjson 0.03 0.04 1
ujson 0.18 0.19 4.6
rapidjson 0.1 0.12 2.9
simplejson 0.25 0.89 21.4
json 0.18 0.71 17

This measures serializing the citm_catalog.json fixture, more of a worst case due to the amount of nesting and newlines, as compact (489KiB) or pretty (1.1MiB):

Library compact (ms) pretty (ms) vs. orjson
orjson 0.59 0.71 1
ujson 2.9 3.59 5
rapidjson 1.81 2.8 3.9
simplejson 10.43 42.13 59.1
json 4.16 33.42 46.9

This can be reproduced using the pyindent script.

OPT_NAIVE_UTC

Serialize datetime.datetime objects without a tzinfo as UTC. This has no effect on datetime.datetime objects that have tzinfo set.

>>> import orjson, datetime
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0),
    )
b'"1970-01-01T00:00:00"'
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0),
        option=orjson.OPT_NAIVE_UTC,
    )
b'"1970-01-01T00:00:00+00:00"'
OPT_NON_STR_KEYS

Serialize dict keys of type other than str. This allows dict keys to be one of str, int, float, bool, None, datetime.datetime, datetime.date, datetime.time, enum.Enum, and uuid.UUID. For comparison, the standard library serializes str, int, float, bool or None by default. orjson benchmarks as being faster at serializing non-str keys than other libraries. This option is slower for str keys than the default.

>>> import orjson, datetime, uuid
>>> orjson.dumps(
        {uuid.UUID("7202d115-7ff3-4c81-a7c1-2a1f067b1ece"): [1, 2, 3]},
        option=orjson.OPT_NON_STR_KEYS,
    )
b'{"7202d115-7ff3-4c81-a7c1-2a1f067b1ece":[1,2,3]}'
>>> orjson.dumps(
        {datetime.datetime(1970, 1, 1, 0, 0, 0): [1, 2, 3]},
        option=orjson.OPT_NON_STR_KEYS | orjson.OPT_NAIVE_UTC,
    )
b'{"1970-01-01T00:00:00+00:00":[1,2,3]}'

These types are generally serialized how they would be as values, e.g., datetime.datetime is still an RFC 3339 string and respects options affecting it. The exception is that int serialization does not respect OPT_STRICT_INTEGER.

This option has the risk of creating duplicate keys. This is because non-str objects may serialize to the same str as an existing key, e.g., {"1": true, 1: false}. The last key to be inserted to the dict will be serialized last and a JSON deserializer will presumably take the last occurrence of a key (in the above, false). The first value will be lost.

This option is compatible with orjson.OPT_SORT_KEYS. If sorting is used, note the sort is unstable and will be unpredictable for duplicate keys.

>>> import orjson, datetime
>>> orjson.dumps(
    {"other": 1, datetime.date(1970, 1, 5): 2, datetime.date(1970, 1, 3): 3},
    option=orjson.OPT_NON_STR_KEYS | orjson.OPT_SORT_KEYS
)
b'{"1970-01-03":3,"1970-01-05":2,"other":1}'

This measures serializing 589KiB of JSON comprising a list of 100 dict in which each dict has both 365 randomly-sorted int keys representing epoch timestamps as well as one str key and the value for each key is a single integer. In "str keys", the keys were converted to str before serialization, and orjson still specifes option=orjson.OPT_NON_STR_KEYS (which is always somewhat slower).

Library str keys (ms) int keys (ms) int keys sorted (ms)
orjson 1.53 2.16 4.29
ujson 3.07 5.65
rapidjson 4.29
simplejson 11.24 14.50 21.86
json 7.17 8.49

ujson is blank for sorting because it segfaults. json is blank because it raises TypeError on attempting to sort before converting all keys to str. rapidjson is blank because it does not support non-str keys. This can be reproduced using the pynonstr script.

OPT_OMIT_MICROSECONDS

Do not serialize the microsecond field on datetime.datetime and datetime.time instances.

>>> import orjson, datetime
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, 1),
    )
b'"1970-01-01T00:00:00.000001"'
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, 1),
        option=orjson.OPT_OMIT_MICROSECONDS,
    )
b'"1970-01-01T00:00:00"'
OPT_PASSTHROUGH_DATACLASS

Passthrough dataclasses.dataclass instances to default. This allows customizing their output but is much slower.

>>> import orjson, dataclasses
>>>
@dataclasses.dataclass
class User:
    id: str
    name: str
    password: str

def default(obj):
    if isinstance(obj, User):
        return {"id": obj.id, "name": obj.name}
    raise TypeError

>>> orjson.dumps(User("3b1", "asd", "zxc"))
b'{"id":"3b1","name":"asd","password":"zxc"}'
>>> orjson.dumps(User("3b1", "asd", "zxc"), option=orjson.OPT_PASSTHROUGH_DATACLASS)
TypeError: Type is not JSON serializable: User
>>> orjson.dumps(
        User("3b1", "asd", "zxc"),
        option=orjson.OPT_PASSTHROUGH_DATACLASS,
        default=default,
    )
b'{"id":"3b1","name":"asd"}'
OPT_PASSTHROUGH_DATETIME

Passthrough datetime.datetime, datetime.date, and datetime.time instances to default. This allows serializing datetimes to a custom format, e.g., HTTP dates:

>>> import orjson, datetime
>>>
def default(obj):
    if isinstance(obj, datetime.datetime):
        return obj.strftime("%a, %d %b %Y %H:%M:%S GMT")
    raise TypeError

>>> orjson.dumps({"created_at": datetime.datetime(1970, 1, 1)})
b'{"created_at":"1970-01-01T00:00:00"}'
>>> orjson.dumps({"created_at": datetime.datetime(1970, 1, 1)}, option=orjson.OPT_PASSTHROUGH_DATETIME)
TypeError: Type is not JSON serializable: datetime.datetime
>>> orjson.dumps(
        {"created_at": datetime.datetime(1970, 1, 1)},
        option=orjson.OPT_PASSTHROUGH_DATETIME,
        default=default,
    )
b'{"created_at":"Thu, 01 Jan 1970 00:00:00 GMT"}'

This does not affect datetimes in dict keys if using OPT_NON_STR_KEYS.

OPT_PASSTHROUGH_SUBCLASS

Passthrough subclasses of builtin types to default.

>>> import orjson
>>>
class Secret(str):
    pass

def default(obj):
    if isinstance(obj, Secret):
        return "******"
    raise TypeError

>>> orjson.dumps(Secret("zxc"))
b'"zxc"'
>>> orjson.dumps(Secret("zxc"), option=orjson.OPT_PASSTHROUGH_SUBCLASS)
TypeError: Type is not JSON serializable: Secret
>>> orjson.dumps(Secret("zxc"), option=orjson.OPT_PASSTHROUGH_SUBCLASS, default=default)
b'"******"'

This does not affect serializing subclasses as dict keys if using OPT_NON_STR_KEYS.

OPT_SERIALIZE_DATACLASS

This is deprecated and has no effect in version 3. In version 2 this was required to serialize dataclasses.dataclass instances. For more, see dataclass.

OPT_SERIALIZE_NUMPY

Serialize numpy.ndarray instances. For more, see numpy.

OPT_SERIALIZE_UUID

This is deprecated and has no effect in version 3. In version 2 this was required to serialize uuid.UUID instances. For more, see UUID.

OPT_SORT_KEYS

Serialize dict keys in sorted order. The default is to serialize in an unspecified order. This is equivalent to sort_keys=True in the standard library.

This can be used to ensure the order is deterministic for hashing or tests. It has a substantial performance penalty and is not recommended in general.

>>> import orjson
>>> orjson.dumps({"b": 1, "c": 2, "a": 3})
b'{"b":1,"c":2,"a":3}'
>>> orjson.dumps({"b": 1, "c": 2, "a": 3}, option=orjson.OPT_SORT_KEYS)
b'{"a":3,"b":1,"c":2}'

This measures serializing the twitter.json fixture unsorted and sorted:

Library unsorted (ms) sorted (ms) vs. orjson
orjson 0.32 0.54 1
ujson 1.6 2.07 3.8
rapidjson 1.12 1.65 3.1
simplejson 2.25 3.13 5.8
json 1.78 2.32 4.3

The benchmark can be reproduced using the pysort script.

The sorting is not collation/locale-aware:

>>> import orjson
>>> orjson.dumps({"a": 1, "ä": 2, "A": 3}, option=orjson.OPT_SORT_KEYS)
b'{"A":3,"a":1,"\xc3\xa4":2}'

This is the same sorting behavior as the standard library, rapidjson, simplejson, and ujson.

dataclass also serialize as maps but this has no effect on them.

OPT_STRICT_INTEGER

Enforce 53-bit limit on integers. The limit is otherwise 64 bits, the same as the Python standard library. For more, see int.

OPT_UTC_Z

Serialize a UTC timezone on datetime.datetime instances as Z instead of +00:00.

>>> import orjson, datetime, zoneinfo
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo("UTC")),
    )
b'"1970-01-01T00:00:00+00:00"'
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo("UTC")),
        option=orjson.OPT_UTC_Z
    )
b'"1970-01-01T00:00:00Z"'

Fragment

orjson.Fragment includes already-serialized JSON in a document. This is an efficient way to include JSON blobs from a cache, JSONB field, or separately serialized object without first deserializing to Python objects via loads().

>>> import orjson
>>> orjson.dumps({"key": "zxc", "data": orjson.Fragment(b'{"a": "b", "c": 1}')})
b'{"key":"zxc","data":{"a": "b", "c": 1}}'

It does no reformatting: orjson.OPT_INDENT_2 will not affect a compact blob nor will a pretty-printed JSON blob be rewritten as compact.

The input must be bytes or str and given as a positional argument.

This raises orjson.JSONEncodeError if a str is given and the input is not valid UTF-8. It otherwise does no validation and it is possible to write invalid JSON. This does not escape characters. The implementation is tested to not crash if given invalid strings or invalid JSON.

This is similar to RawJSON in rapidjson.

Deserialize

def loads(__obj: Union[bytes, bytearray, memoryview, str]) -> Any: ...

loads() deserializes JSON to Python objects. It deserializes to dict, list, int, float, str, bool, and None objects.

bytes, bytearray, memoryview, and str input are accepted. If the input exists as a memoryview, bytearray, or bytes object, it is recommended to pass these directly rather than creating an unnecessary str object. That is, orjson.loads(b"{}") instead of orjson.loads(b"{}".decode("utf-8")). This has lower memory usage and lower latency.

The input must be valid UTF-8.

orjson maintains a cache of map keys for the duration of the process. This causes a net reduction in memory usage by avoiding duplicate strings. The keys must be at most 64 bytes to be cached and 1024 entries are stored.

The global interpreter lock (GIL) is held for the duration of the call.

It raises JSONDecodeError if given an invalid type or invalid JSON. This includes if the input contains NaN, Infinity, or -Infinity, which the standard library allows, but is not valid JSON.

It raises JSONDecodeError if a combination of array or object recurses 1024 levels deep.

JSONDecodeError is a subclass of json.JSONDecodeError and ValueError. This is for compatibility with the standard library.

Types

dataclass

orjson serializes instances of dataclasses.dataclass natively. It serializes instances 40-50x as fast as other libraries and avoids a severe slowdown seen in other libraries compared to serializing dict.

It is supported to pass all variants of dataclasses, including dataclasses using __slots__, frozen dataclasses, those with optional or default attributes, and subclasses. There is a performance benefit to not using __slots__.

Library dict (ms) dataclass (ms) vs. orjson
orjson 1.40 1.60 1
ujson
rapidjson 3.64 68.48 42
simplejson 14.21 92.18 57
json 13.28 94.90 59

This measures serializing 555KiB of JSON, orjson natively and other libraries using default to serialize the output of dataclasses.asdict(). This can be reproduced using the pydataclass script.

Dataclasses are serialized as maps, with every attribute serialized and in the order given on class definition:

>>> import dataclasses, orjson, typing

@dataclasses.dataclass
class Member:
    id: int
    active: bool = dataclasses.field(default=False)

@dataclasses.dataclass
class Object:
    id: int
    name: str
    members: typing.List[Member]

>>> orjson.dumps(Object(1, "a", [Member(1, True), Member(2)]))
b'{"id":1,"name":"a","members":[{"id":1,"active":true},{"id":2,"active":false}]}'

datetime

orjson serializes datetime.datetime objects to RFC 3339 format, e.g., "1970-01-01T00:00:00+00:00". This is a subset of ISO 8601 and is compatible with isoformat() in the standard library.

>>> import orjson, datetime, zoneinfo
>>> orjson.dumps(
    datetime.datetime(2018, 12, 1, 2, 3, 4, 9, tzinfo=zoneinfo.ZoneInfo("Australia/Adelaide"))
)
b'"2018-12-01T02:03:04.000009+10:30"'
>>> orjson.dumps(
    datetime.datetime(2100, 9, 1, 21, 55, 2).replace(tzinfo=zoneinfo.ZoneInfo("UTC"))
)
b'"2100-09-01T21:55:02+00:00"'
>>> orjson.dumps(
    datetime.datetime(2100, 9, 1, 21, 55, 2)
)
b'"2100-09-01T21:55:02"'

datetime.datetime supports instances with a tzinfo that is None, datetime.timezone.utc, a timezone instance from the python3.9+ zoneinfo module, or a timezone instance from the third-party pendulum, pytz, or dateutil/arrow libraries.

It is fastest to use the standard library's zoneinfo.ZoneInfo for timezones.

datetime.time objects must not have a tzinfo.

>>> import orjson, datetime
>>> orjson.dumps(datetime.time(12, 0, 15, 290))
b'"12:00:15.000290"'

datetime.date objects will always serialize.

>>> import orjson, datetime
>>> orjson.dumps(datetime.date(1900, 1, 2))
b'"1900-01-02"'

Errors with tzinfo result in JSONEncodeError being raised.

To disable serialization of datetime objects specify the option orjson.OPT_PASSTHROUGH_DATETIME.

To use "Z" suffix instead of "+00:00" to indicate UTC ("Zulu") time, use the option orjson.OPT_UTC_Z.

To assume datetimes without timezone are UTC, use the option orjson.OPT_NAIVE_UTC.

enum

orjson serializes enums natively. Options apply to their values.

>>> import enum, datetime, orjson
>>>
class DatetimeEnum(enum.Enum):
    EPOCH = datetime.datetime(1970, 1, 1, 0, 0, 0)
>>> orjson.dumps(DatetimeEnum.EPOCH)
b'"1970-01-01T00:00:00"'
>>> orjson.dumps(DatetimeEnum.EPOCH, option=orjson.OPT_NAIVE_UTC)
b'"1970-01-01T00:00:00+00:00"'

Enums with members that are not supported types can be serialized using default:

>>> import enum, orjson
>>>
class Custom:
    def __init__(self, val):
        self.val = val

def default(obj):
    if isinstance(obj, Custom):
        return obj.val
    raise TypeError

class CustomEnum(enum.Enum):
    ONE = Custom(1)

>>> orjson.dumps(CustomEnum.ONE, default=default)
b'1'

float

orjson serializes and deserializes double precision floats with no loss of precision and consistent rounding.

orjson.dumps() serializes Nan, Infinity, and -Infinity, which are not compliant JSON, as null:

>>> import orjson, ujson, rapidjson, json
>>> orjson.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
b'[null,null,null]'
>>> ujson.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
OverflowError: Invalid Inf value when encoding double
>>> rapidjson.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
'[NaN,Infinity,-Infinity]'
>>> json.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
'[NaN, Infinity, -Infinity]'

int

orjson serializes and deserializes 64-bit integers by default. The range supported is a signed 64-bit integer's minimum (-9223372036854775807) to an unsigned 64-bit integer's maximum (18446744073709551615). This is widely compatible, but there are implementations that only support 53-bits for integers, e.g., web browsers. For those implementations, dumps() can be configured to raise a JSONEncodeError on values exceeding the 53-bit range.

>>> import orjson
>>> orjson.dumps(9007199254740992)
b'9007199254740992'
>>> orjson.dumps(9007199254740992, option=orjson.OPT_STRICT_INTEGER)
JSONEncodeError: Integer exceeds 53-bit range
>>> orjson.dumps(-9007199254740992, option=orjson.OPT_STRICT_INTEGER)
JSONEncodeError: Integer exceeds 53-bit range

numpy

orjson natively serializes numpy.ndarray and individual numpy.float64, numpy.float32, numpy.float16 (numpy.half), numpy.int64, numpy.int32, numpy.int16, numpy.int8, numpy.uint64, numpy.uint32, numpy.uint16, numpy.uint8, numpy.uintp, numpy.intp, numpy.datetime64, and numpy.bool instances.

orjson is faster than all compared libraries at serializing numpy instances. Serializing numpy data requires specifying option=orjson.OPT_SERIALIZE_NUMPY.

>>> import orjson, numpy
>>> orjson.dumps(
        numpy.array([[1, 2, 3], [4, 5, 6]]),
        option=orjson.OPT_SERIALIZE_NUMPY,
)
b'[[1,2,3],[4,5,6]]'

The array must be a contiguous C array (C_CONTIGUOUS) and one of the supported datatypes.

Note a difference between serializing numpy.float32 using ndarray.tolist() or orjson.dumps(..., option=orjson.OPT_SERIALIZE_NUMPY): tolist() converts to a double before serializing and orjson's native path does not. This can result in different rounding.

numpy.datetime64 instances are serialized as RFC 3339 strings and datetime options affect them.

>>> import orjson, numpy
>>> orjson.dumps(
        numpy.datetime64("2021-01-01T00:00:00.172"),
        option=orjson.OPT_SERIALIZE_NUMPY,
)
b'"2021-01-01T00:00:00.172000"'
>>> orjson.dumps(
        numpy.datetime64("2021-01-01T00:00:00.172"),
        option=(
            orjson.OPT_SERIALIZE_NUMPY |
            orjson.OPT_NAIVE_UTC |
            orjson.OPT_OMIT_MICROSECONDS
        ),
)
b'"2021-01-01T00:00:00+00:00"'

If an array is not a contiguous C array, contains an unsupported datatype, or contains a numpy.datetime64 using an unsupported representation (e.g., picoseconds), orjson falls through to default. In default, obj.tolist() can be specified.

If an array is not in the native endianness, e.g., an array of big-endian values on a little-endian system, orjson.JSONEncodeError is raised.

If an array is malformed, orjson.JSONEncodeError is raised.

This measures serializing 92MiB of JSON from an numpy.ndarray with dimensions of (50000, 100) and numpy.float64 values:

Library Latency (ms) RSS diff (MiB) vs. orjson
orjson 194 99 1.0
ujson
rapidjson 3,048 309 15.7
simplejson 3,023 297 15.6
json 3,133 297 16.1

This measures serializing 100MiB of JSON from an numpy.ndarray with dimensions of (100000, 100) and numpy.int32 values:

Library Latency (ms) RSS diff (MiB) vs. orjson
orjson 178 115 1.0
ujson
rapidjson 1,512 551 8.5
simplejson 1,606 504 9.0
json 1,506 503 8.4

This measures serializing 105MiB of JSON from an numpy.ndarray with dimensions of (100000, 200) and numpy.bool values:

Library Latency (ms) RSS diff (MiB) vs. orjson
orjson 157 120 1.0
ujson
rapidjson 710 327 4.5
simplejson 931 398 5.9
json 996 400 6.3

In these benchmarks, orjson serializes natively, ujson is blank because it does not support a default parameter, and the other libraries serialize ndarray.tolist() via default. The RSS column measures peak memory usage during serialization. This can be reproduced using the pynumpy script.

orjson does not have an installation or compilation dependency on numpy. The implementation is independent, reading numpy.ndarray using PyArrayInterface.

str

orjson is strict about UTF-8 conformance. This is stricter than the standard library's json module, which will serialize and deserialize UTF-16 surrogates, e.g., "\ud800", that are invalid UTF-8.

If orjson.dumps() is given a str that does not contain valid UTF-8, orjson.JSONEncodeError is raised. If loads() receives invalid UTF-8, orjson.JSONDecodeError is raised.

orjson and rapidjson are the only compared JSON libraries to consistently error on bad input.

>>> import orjson, ujson, rapidjson, json
>>> orjson.dumps('\ud800')
JSONEncodeError: str is not valid UTF-8: surrogates not allowed
>>> ujson.dumps('\ud800')
UnicodeEncodeError: 'utf-8' codec ...
>>> rapidjson.dumps('\ud800')
UnicodeEncodeError: 'utf-8' codec ...
>>> json.dumps('\ud800')
'"\\ud800"'
>>> orjson.loads('"\\ud800"')
JSONDecodeError: unexpected end of hex escape at line 1 column 8: line 1 column 1 (char 0)
>>> ujson.loads('"\\ud800"')
''
>>> rapidjson.loads('"\\ud800"')
ValueError: Parse error at offset 1: The surrogate pair in string is invalid.
>>> json.loads('"\\ud800"')
'\ud800'

To make a best effort at deserializing bad input, first decode bytes using the replace or lossy argument for errors:

>>> import orjson
>>> orjson.loads(b'"\xed\xa0\x80"')
JSONDecodeError: str is not valid UTF-8: surrogates not allowed
>>> orjson.loads(b'"\xed\xa0\x80"'.decode("utf-8", "replace"))
'���'

uuid

orjson serializes uuid.UUID instances to RFC 4122 format, e.g., "f81d4fae-7dec-11d0-a765-00a0c91e6bf6".

>>> import orjson, uuid
>>> orjson.dumps(uuid.UUID('f81d4fae-7dec-11d0-a765-00a0c91e6bf6'))
b'"f81d4fae-7dec-11d0-a765-00a0c91e6bf6"'
>>> orjson.dumps(uuid.uuid5(uuid.NAMESPACE_DNS, "python.org"))
b'"886313e1-3b8a-5372-9b90-0c9aee199e5d"'

Testing

The library has comprehensive tests. There are tests against fixtures in the JSONTestSuite and nativejson-benchmark repositories. It is tested to not crash against the Big List of Naughty Strings. It is tested to not leak memory. It is tested to not crash against and not accept invalid UTF-8. There are integration tests exercising the library's use in web servers (gunicorn using multiprocess/forked workers) and when multithreaded. It also uses some tests from the ultrajson library.

orjson is the most correct of the compared libraries. This graph shows how each library handles a combined 342 JSON fixtures from the JSONTestSuite and nativejson-benchmark tests:

Library Invalid JSON documents not rejected Valid JSON documents not deserialized
orjson 0 0
ujson 31 0
rapidjson 6 0
simplejson 10 0
json 17 0

This shows that all libraries deserialize valid JSON but only orjson correctly rejects the given invalid JSON fixtures. Errors are largely due to accepting invalid strings and numbers.

The graph above can be reproduced using the pycorrectness script.

Performance

Serialization and deserialization performance of orjson is better than ultrajson, rapidjson, simplejson, or json. The benchmarks are done on fixtures of real data:

  • twitter.json, 631.5KiB, results of a search on Twitter for "一", containing CJK strings, dictionaries of strings and arrays of dictionaries, indented.

  • github.json, 55.8KiB, a GitHub activity feed, containing dictionaries of strings and arrays of dictionaries, not indented.

  • citm_catalog.json, 1.7MiB, concert data, containing nested dictionaries of strings and arrays of integers, indented.

  • canada.json, 2.2MiB, coordinates of the Canadian border in GeoJSON format, containing floats and arrays, indented.

Latency

Serialization

Deserialization

twitter.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.3 3085 1
ujson 2.2 454 6.7
rapidjson 1.7 605 5.1
simplejson 2.9 350 8.8
json 2.3 439 7

twitter.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 1.2 839 1
ujson 2.5 396 2.1
rapidjson 4.1 243 3.5
simplejson 2.7 367 2.3
json 3.2 310 2.7

github.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0 33474 1
ujson 0.2 5179 6.5
rapidjson 0.2 5910 5.7
simplejson 0.3 3051 11
json 0.2 4222 7.9

github.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.1 10211 1
ujson 0.2 4222 2.2
rapidjson 0.3 3947 2.6
simplejson 0.2 5437 1.9
json 0.2 5240 1.9

citm_catalog.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.6 1549 1
ujson 2.7 366 4.2
rapidjson 2.2 446 3.5
simplejson 11.3 88 17.6
json 5.1 195 7.9

citm_catalog.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 2.7 367 1
ujson 4.7 213 1.7
rapidjson 7.2 139 2.6
simplejson 6 167 2.2
json 6.3 158 2.3

canada.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 4.8 208 1
ujson 15.6 63 3.3
rapidjson 42.4 23 8.9
simplejson 72 13 15
json 46.2 21 9.6

canada.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 5.7 176 1
ujson 14 71 2.5
rapidjson 27.5 36 4.9
simplejson 28.4 35 5
json 28.3 35 5

Memory

orjson as of 3.7.0 has higher baseline memory usage than other libraries due to a persistent buffer used for parsing. Incremental memory usage when deserializing is similar to the standard library and other third-party libraries.

This measures, in the first column, RSS after importing a library and reading the fixture, and in the second column, increases in RSS after repeatedly calling loads() on the fixture.

twitter.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 15.7 3.4
ujson 16.4 3.4
rapidjson 16.6 4.4
simplejson 14.5 1.8
json 13.9 1.8

github.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 15.2 0.4
ujson 15.4 0.4
rapidjson 15.7 0.5
simplejson 13.7 0.2
json 13.3 0.1

citm_catalog.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 16.8 10.1
ujson 17.3 10.2
rapidjson 17.6 28.7
simplejson 15.8 30.1
json 14.8 20.5

canada.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 17.2 22.1
ujson 17.4 18.3
rapidjson 18 23.5
simplejson 15.7 21.4
json 15.4 20.4

Reproducing

The above was measured using Python 3.11.8 on Linux (amd64) with orjson 3.10.0, ujson 5.9.0, python-rapidson 1.16, and simplejson 3.19.2.

The latency results can be reproduced using the pybench and graph scripts. The memory results can be reproduced using the pymem script.

Questions

Why can't I install it from PyPI?

Probably pip needs to be upgraded to version 20.3 or later to support the latest manylinux_x_y or universal2 wheel formats.

"Cargo, the Rust package manager, is not installed or is not on PATH."

This happens when there are no binary wheels (like manylinux) for your platform on PyPI. You can install Rust through rustup or a package manager and then it will compile.

Will it deserialize to dataclasses, UUIDs, decimals, etc or support object_hook?

No. This requires a schema specifying what types are expected and how to handle errors etc. This is addressed by data validation libraries a level above this.

Will it serialize to str?

No. bytes is the correct type for a serialized blob.

Packaging

To package orjson requires at least Rust 1.72 and the maturin build tool. The recommended build command is:

maturin build --release --strip

It benefits from also having a C build environment to compile a faster deserialization backend. See this project's manylinux_2_28 builds for an example using clang and LTO.

The project's own CI tests against nightly-2024-04-15 and stable 1.72. It is prudent to pin the nightly version because that channel can introduce breaking changes.

orjson is tested for amd64, aarch64, arm7, ppc64le, and s390x on Linux. It is tested for either aarch64 or amd64 on macOS and cross-compiles for the other, depending on version. For Windows it is tested on amd64 and i686.

There are no runtime dependencies other than libc.

The source distribution on PyPI contains all dependencies' source and can be built without network access. The file can be downloaded from https://files.pythonhosted.org/packages/source/o/orjson/orjson-${version}.tar.gz.

orjson's tests are included in the source distribution on PyPI. The requirements to run the tests are specified in test/requirements.txt. The tests should be run as part of the build. It can be run with pytest -q test.

License

orjson was written by ijl <ijl@mailbox.org>, copyright 2018 - 2024, available to you under either the Apache 2 license or MIT license at your choice.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

orjson-3.10.1.tar.gz (4.9 MB view details)

Uploaded Source

Built Distributions

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

orjson-3.10.1-cp312-none-win_amd64.whl (139.2 kB view details)

Uploaded CPython 3.12Windows x86-64

orjson-3.10.1-cp312-none-win32.whl (140.1 kB view details)

Uploaded CPython 3.12Windows x86

orjson-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl (311.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

orjson-3.10.1-cp312-cp312-musllinux_1_2_aarch64.whl (329.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

orjson-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

orjson-3.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (160.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

orjson-3.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (150.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

orjson-3.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (148.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

orjson-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

orjson-3.10.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (250.7 kB view details)

Uploaded CPython 3.12macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.10.1-cp311-none-win_amd64.whl (139.1 kB view details)

Uploaded CPython 3.11Windows x86-64

orjson-3.10.1-cp311-none-win32.whl (140.0 kB view details)

Uploaded CPython 3.11Windows x86

orjson-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl (311.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

orjson-3.10.1-cp311-cp311-musllinux_1_2_aarch64.whl (330.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

orjson-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

orjson-3.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (160.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

orjson-3.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (150.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

orjson-3.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (148.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

orjson-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

orjson-3.10.1-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (250.6 kB view details)

Uploaded CPython 3.11macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.10.1-cp310-none-win_amd64.whl (139.1 kB view details)

Uploaded CPython 3.10Windows x86-64

orjson-3.10.1-cp310-none-win32.whl (139.9 kB view details)

Uploaded CPython 3.10Windows x86

orjson-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl (311.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

orjson-3.10.1-cp310-cp310-musllinux_1_2_aarch64.whl (330.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

orjson-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

orjson-3.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (160.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

orjson-3.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (150.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

orjson-3.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (148.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

orjson-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

orjson-3.10.1-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (250.6 kB view details)

Uploaded CPython 3.10macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.10.1-cp39-none-win_amd64.whl (138.9 kB view details)

Uploaded CPython 3.9Windows x86-64

orjson-3.10.1-cp39-none-win32.whl (139.8 kB view details)

Uploaded CPython 3.9Windows x86

orjson-3.10.1-cp39-cp39-musllinux_1_2_x86_64.whl (311.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

orjson-3.10.1-cp39-cp39-musllinux_1_2_aarch64.whl (329.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

orjson-3.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

orjson-3.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (159.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

orjson-3.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (149.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

orjson-3.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (148.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

orjson-3.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

orjson-3.10.1-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (250.2 kB view details)

Uploaded CPython 3.9macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.10.1-cp38-none-win_amd64.whl (138.8 kB view details)

Uploaded CPython 3.8Windows x86-64

orjson-3.10.1-cp38-none-win32.whl (139.7 kB view details)

Uploaded CPython 3.8Windows x86

orjson-3.10.1-cp38-cp38-musllinux_1_2_x86_64.whl (311.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

orjson-3.10.1-cp38-cp38-musllinux_1_2_aarch64.whl (329.3 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

orjson-3.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

orjson-3.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (159.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

orjson-3.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (149.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

orjson-3.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (148.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARMv7l

orjson-3.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (146.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

orjson-3.10.1-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (250.0 kB view details)

Uploaded CPython 3.8macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

File details

Details for the file orjson-3.10.1.tar.gz.

File metadata

  • Download URL: orjson-3.10.1.tar.gz
  • Upload date:
  • Size: 4.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1.tar.gz
Algorithm Hash digest
SHA256 a883b28d73370df23ed995c466b4f6c708c1f7a9bdc400fe89165c96c7603204
MD5 ffc17df9e5acde5d14af9920404d7530
BLAKE2b-256 f5af0daa12a907215a5af6d97db8adf301ef14a1b1c651f7e176ee04e0998433

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.10.1-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 139.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 aa76c4fe147fd162107ce1692c39f7189180cfd3a27cfbc2ab5643422812da8e
MD5 9907187b05648e8550d8741c096bd95a
BLAKE2b-256 2d5932131dc36b2d6f6de27572e6ca1ef18cc5aee08d29633aa9ba6cdb42438e

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-none-win32.whl.

File metadata

  • Download URL: orjson-3.10.1-cp312-none-win32.whl
  • Upload date:
  • Size: 140.1 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp312-none-win32.whl
Algorithm Hash digest
SHA256 d89e5ed68593226c31c76ab4de3e0d35c760bfd3fbf0a74c4b2be1383a1bf123
MD5 0aff375981f9fdf978096a49dc3fb776
BLAKE2b-256 d86f21f509065fe797eaddcda99212ed392c35d25d8dfe42247b5ed5a81d87ff

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7f11dbacfa9265ec76b4019efffabaabba7a7ebf14078f6b4df9b51c3c9a8ea
MD5 13f99d7cf3b607a013af2355bf9d3ebf
BLAKE2b-256 888eac0960933ac58a1f8f4710fc13fd0b2d7b08d6cc6506f82b9bc55865b58a

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 57c294d73825c6b7f30d11c9e5900cfec9a814893af7f14efbe06b8d0f25fba9
MD5 50911b6d7dc3ca381e2d02373a442f15
BLAKE2b-256 ba3993f629ed0fb4cc3d696f02620a963c157c31d50406ab61f1cc7330e06513

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d1d169461726f271ab31633cf0e7e7353417e16fb69256a4f8ecb3246a78d6e
MD5 779f8b33cce6357ed8e7969b377cef9e
BLAKE2b-256 87ab8be6626da8892ac71ac2e0b66ed38e8cf38e371d3921d92d8dd97f7de90a

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d31f9a709e6114492136e87c7c6da5e21dfedebefa03af85f3ad72656c493ae9
MD5 c3d41b4f215c705fd453e45c8074f128
BLAKE2b-256 f1816c30d1189ebbfdaf53cd787c3deedafca38f3d1cc92db93a478565b1d292

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a1b130c20b116f413caf6059c651ad32215c28500dce9cd029a334a2d84aa66f
MD5 a3fb698e2edbcf0700dce8c765cc4692
BLAKE2b-256 da78c2b416a4462403884243d5f2b094405ff3696e45708e47bfd45080470810

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 2cf29b4b74f585225196944dffdebd549ad2af6da9e80db7115984103fb18a96
MD5 dc339f540804577defe5cdfad5d86dfc
BLAKE2b-256 42c1e1175278edac933ea016d3b934871c8f20543e89f5b361c2b14dbf3e4310

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b1aa2f127ac546e123283e437cc90b5ecce754a22306c7700b11035dad4ccf85
MD5 0500e090dfb9cc2c8d8f6b15d0e1fcbe
BLAKE2b-256 6dd6e2df31a1bd93e634555e509df8f327cef9d9a76c46eeec924dc441fa91bc

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 f02c06cee680b1b3a8727ec26c36f4b3c0c9e2b26339d64471034d16f74f4ef5
MD5 f3b77dacb43729ec33d2b175e4fb078c
BLAKE2b-256 969693ee0a54cb8c91a3ae19ff74d5e9601a672854604cf3916f9b269df93bb5

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.10.1-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 139.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 03a3ca0b3ed52bed1a869163a4284e8a7b0be6a0359d521e467cdef7e8e8a3ee
MD5 223e9abad3453ef5914817062a7e9579
BLAKE2b-256 28f262bdd14f712fbc36afb3e3885abf88b6804324d8ad074f9431adb7d702ab

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-none-win32.whl.

File metadata

  • Download URL: orjson-3.10.1-cp311-none-win32.whl
  • Upload date:
  • Size: 140.0 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp311-none-win32.whl
Algorithm Hash digest
SHA256 813905e111318acb356bb8029014c77b4c647f8b03f314e7b475bd9ce6d1a8ce
MD5 4574c55fba222a671e1a82218f5b47ac
BLAKE2b-256 159eadc4f6924178a2123d5de93a8f7afbdf7dff18449ee3d1e6116cee65dfbb

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4ce98cac60b7bb56457bdd2ed7f0d5d7f242d291fdc0ca566c83fa721b52e92d
MD5 4dde60c8e9df64973ab1ed871d328583
BLAKE2b-256 a8c536bf7abb5bf0f712c5552fa08e6f1b615d10d52ff123e2349e1b8cdc5437

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2567bc928ed3c3fcd90998009e8835de7c7dc59aabcf764b8374d36044864f3b
MD5 70a42f339a6569b1734dacaff405076c
BLAKE2b-256 4e9763a984b63c2918bdc5d3288a252b5d379ac34e402e366dcc5732c5f73c3c

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e852a83d7803d3406135fb7a57cf0c1e4a3e73bac80ec621bd32f01c653849c5
MD5 2a65e0fcb231080049411f3e973b9464
BLAKE2b-256 40c8bc8e7d389efcbb1e55cc7ddab05233ec66d4e764ada2dda19891cdb5b4de

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 31ff6a222ea362b87bf21ff619598a4dc1106aaafaea32b1c4876d692891ec27
MD5 6771c23b2be1bbc7f7258897587a29b3
BLAKE2b-256 f78f39d554aa829c637b5e0b6b81e3e7593e4f1b73cbf6d9b9bacb92e7513347

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b5028981ba393f443d8fed9049211b979cadc9d0afecf162832f5a5b152c6297
MD5 8f1d463874b4fdc076a22ddbd54e0bd6
BLAKE2b-256 6b3b4cbb304948d10104331c1e7a1257a5ac11a85bf1a90dfb9601f89166aa63

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b01d701decd75ae092e5f36f7b88a1e7a1d3bb7c9b9d7694de850fb155578d5a
MD5 cecef9bf8738844115e7bc68666195bc
BLAKE2b-256 e5c0ebbe007b2c614f573f5488178ec02846252ed0a108ce796f44a5b95e18be

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 caa7395ef51af4190d2c70a364e2f42138e0e5fcb4bc08bc9b76997659b27dab
MD5 8e03aeec0ed9f122c995a0846a19b382
BLAKE2b-256 e5ed66651ca2cc3d0220b25cf70276b2e40c04e0122f084a5908dd952f94ec5d

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 b345a3d6953628df2f42502297f6c1e1b475cfbf6268013c94c5ac80e8abc04c
MD5 87486c998b33157d92df05903d79062d
BLAKE2b-256 5e056bff1dc3cf8823ae17f4c105e763680c15754d4c43d15073df825fbec6dc

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.10.1-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 139.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 50ca42b40d5a442a9e22eece8cf42ba3d7cd4cd0f2f20184b4d7682894f05eec
MD5 f092b69af0cdc9bb75d86a8700cfe36e
BLAKE2b-256 5b4042ee393448c5f77debc589b247f1400b51c5db95e906baa89d0fdd1ba0c2

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-none-win32.whl.

File metadata

  • Download URL: orjson-3.10.1-cp310-none-win32.whl
  • Upload date:
  • Size: 139.9 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp310-none-win32.whl
Algorithm Hash digest
SHA256 fd78ec55179545c108174ba19c1795ced548d6cac4d80d014163033c047ca4ea
MD5 17133b40ae86a0e5141e6a22f23597ff
BLAKE2b-256 fad83d5ee5da9bc27aee3a7e15649fde4c203da3549b3fa6905327c3aadcce69

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e00495b18304173ac843b5c5fbea7b6f7968564d0d49bef06bfaeca4b656f4e
MD5 11306b90e79a7578f80cc1e5f9e71d7f
BLAKE2b-256 50ecdf73615ef98d0da112b6bd659cb0abb4663824b163f65612a5d0961ef5e0

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d229564e72cfc062e6481a91977a5165c5a0fdce11ddc19ced8471847a67c517
MD5 921678bbeba24268a692b4529317af50
BLAKE2b-256 8a8ac0f8de5f9cbaf911c3d5cb2bc0abae784456e886f962aa56164d105b81f1

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe3fd4a36eff9c63d25503b439531d21828da9def0059c4f472e3845a081aa0b
MD5 c29ccc70f3ffb35ec9c51bba5c1d92c7
BLAKE2b-256 70b18ccbaf6be91f0cb169c3062fcda4692ef4c8b02e338ed2520aeb108b2fd9

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 915abfb2e528677b488a06eba173e9d7706a20fdfe9cdb15890b74ef9791b85e
MD5 799510ab610a24af725d54761ddc84f7
BLAKE2b-256 68f5bf3e3b40586badb1c4c9f9dda245a9834e9ee3efe171728d30c0c727b164

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8af7c68b01b876335cccfb4eee0beef2b5b6eae1945d46a09a7c24c9faac7a77
MD5 2890325d97f94ba4f2439e2870e64fe4
BLAKE2b-256 e27eebf0a05014b0a7e21d7082c1a12d9ddb38e8e57c87747143ff00984c8fca

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ab6ecbd6fe57785ebc86ee49e183f37d45f91b46fc601380c67c5c5e9c0014a2
MD5 e4d89acf152e7972184d19904097f10d
BLAKE2b-256 804adb5f5ad7c043ff8d618e9c308ced327f171f909261670a43fb85d330b467

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2e900863691d327758be14e2a491931605bd0aded3a21beb6ce133889830b659
MD5 21ec37ba845f20bd77d06fcee0c8c51a
BLAKE2b-256 a7d474c2bb813e3b5c831e251e2c938d1c575459c68a4a24755256a1c7dd195b

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 8ec2fc456d53ea4a47768f622bb709be68acd455b0c6be57e91462259741c4f3
MD5 533d78fe92c871758c492ed7f374b33a
BLAKE2b-256 7383caaf26cd6e7c11c01de6d16494dd841cba9c41fb07540703a6e5d1b5f3a0

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.10.1-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 138.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 fb5bc4caa2c192077fdb02dce4e5ef8639e7f20bec4e3a834346693907362932
MD5 933f98178d709de5d0fe6fc382945166
BLAKE2b-256 e374c99760f77f2c193d6386c5aca9d9f9b0df5ac2890c53a420de68bb0ccc5e

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-none-win32.whl.

File metadata

  • Download URL: orjson-3.10.1-cp39-none-win32.whl
  • Upload date:
  • Size: 139.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp39-none-win32.whl
Algorithm Hash digest
SHA256 4ae10753e7511d359405aadcbf96556c86e9dbf3a948d26c2c9f9a150c52b091
MD5 d4121496016381fcb784f3a8c7b0e629
BLAKE2b-256 d7973eec9dea6425b96d0a1314d155973a11707d156b2c8879d02ab117845bd0

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5be608c3972ed902e0143a5b8776d81ac1059436915d42defe5c6ae97b3137a4
MD5 a495fdceacc149d4201b7a407e6322f7
BLAKE2b-256 0d93f5af5d0b5fcc7a1e1f11d5154e3593e845feaab1bac1a04cebd2c64eb02b

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ebc58693464146506fde0c4eb1216ff6d4e40213e61f7d40e2f0dde9b2f21650
MD5 6c1bf07c4af0e96a091eb898c3678caa
BLAKE2b-256 dccd007d07c9fa40c0a0883109ede751b9c2236a7b5bece18b42c387214c2d69

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27ff69c620a4fff33267df70cfd21e0097c2a14216e72943bd5414943e376d77
MD5 d8fa2bf261154ee194bb056a9341b0b6
BLAKE2b-256 586a676601cff14d5a8d8cbe7396927f743c5be53d0803f7c0693a9a59d9dcee

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d751efaa8a49ae15cbebdda747a62a9ae521126e396fda8143858419f3b03610
MD5 2c66db7cecabf8722b8f317ddd9ccff4
BLAKE2b-256 c02f4ccf806acd32a6f9c68d5e1b797915e4b097f11f5cab62f16a4b5bbd2fa7

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 79244b1456e5846d44e9846534bd9e3206712936d026ea8e6a55a7374d2c0694
MD5 74ee74ef16508ec56d8ed384d0d7cb07
BLAKE2b-256 7da4ff12594858f747b782ef0921eed97e578ec7abc9cd9ebb036543419c9ac8

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 27d610df96ac18ace4931411d489637d20ab3b8f63562b0531bba16011998db0
MD5 1a2acddaca5065c262eeaad747e08602
BLAKE2b-256 b09d5920c8e2d52708729f0f9a2b1877d5097f61a5957c039c1c446a49a3a5c0

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 53521542a6db1411b3bfa1b24ddce18605a3abdc95a28a67b33f9145f26aa8f2
MD5 be1390dd48968f402446cddb679e0b79
BLAKE2b-256 1cf9bea73fb2573537ab9c29e264f544bd6bd7765c8f2152f5c5c75722c531b9

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 a51fd55d4486bc5293b7a400f9acd55a2dc3b5fc8420d5ffe9b1d6bb1a056a5e
MD5 ff33839d97c04a021dd6c4169dbf1941
BLAKE2b-256 b943bd83ff49df7c7d29012bf8af76c0d563e8848a3382a9413dfbedbefad132

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.10.1-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 138.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 dab5f802d52b182163f307d2b1f727d30b1762e1923c64c9c56dd853f9671a49
MD5 5129acb4abe7a9503277456423a73fb0
BLAKE2b-256 3a9d9434d53f81937e14b8c1e4bf12c03ee406ec0368d073eea391554b125ee4

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-none-win32.whl.

File metadata

  • Download URL: orjson-3.10.1-cp38-none-win32.whl
  • Upload date:
  • Size: 139.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for orjson-3.10.1-cp38-none-win32.whl
Algorithm Hash digest
SHA256 8a884fbf81a3cc22d264ba780920d4885442144e6acaa1411921260416ac9a54
MD5 d0331b3f2776cfb519b1d4332f486dff
BLAKE2b-256 d14d08982fde5edcd40a5cceeee1cb9508107943b6f5813baf6105d9809b763f

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 01234249ba19c6ab1eb0b8be89f13ea21218b2d72d496ef085cfd37e1bae9dd8
MD5 681674964c2f93f472529c530a76093a
BLAKE2b-256 3f81c907281043ac1847adfe711de2a03f3aa466ecc5014d8a5b760281ef0198

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2b230ec35f188f003f5b543644ae486b2998f6afa74ee3a98fc8ed2e45960afc
MD5 b974ad6ad648aaa85e0bbdb17a7b5372
BLAKE2b-256 6e3313899b1cc2c87a1a3c39b7945cf5b11669314f66b57b2046cd5fe3936a95

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7dfed3c3e9b9199fb9c3355b9c7e4649b65f639e50ddf50efdf86b45c6de04b5
MD5 c7e36045a9743c2f10ccfbd999ec798d
BLAKE2b-256 3ff754cb27fa43ef7940172b5d2a72cfaa14acdfaa8ec97d9fdda09fb6f5fb81

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 536429bb02791a199d976118b95014ad66f74c58b7644d21061c54ad284e00f4
MD5 4640c25243fad0c5b4885cfd9be3eed7
BLAKE2b-256 d621bea62f2d47950324848393f2bc56b60865817f67739e93b7e62430fc9146

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5252146b3172d75c8a6d27ebca59c9ee066ffc5a277050ccec24821e68742fdf
MD5 976838c820b28973e873936fb969e666
BLAKE2b-256 1375a06d2aa52a0aab2932ac71e4a509951b0698b4ca51f750ec641f0bb4c30a

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ec917b768e2b34b7084cb6c68941f6de5812cc26c6f1a9fecb728e36a3deb9e8
MD5 cf1763c8322af806d90a6c9be5d1d17a
BLAKE2b-256 d8d144a15a0e0eb9954a1de0e243822aad0d0a16f2a1e9a61ca51dbc92830315

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9813f43da955197d36a7365eb99bed42b83680801729ab2487fef305b9ced866
MD5 a98719d4369678ed36b3e9a7a559953b
BLAKE2b-256 c25ea4de7c063e74cd5f29091ff4e99c5a8823f82d6a15bbb5e0523ca4f519d7

See more details on using hashes here.

File details

Details for the file orjson-3.10.1-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.10.1-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 a2c6a85c92d0e494c1ae117befc93cf8e7bca2075f7fe52e32698da650b2c6d1
MD5 37fa44cb943f7134cbef8e6793e54605
BLAKE2b-256 7c5554660562f8191def9d98935553c20f35f5d2e8f7ec431d1887a00b6dcf56

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