Recent Releases of https://github.com/ijl/orjson

https://github.com/ijl/orjson - 3.11.2

Fixed

  • Fix build using Rust 1.89 on amd64.

Changed

  • Build now depends on Rust 1.85 or later instead of 1.82.

- Python
Published by ijl 6 months ago

https://github.com/ijl/orjson - 3.11.1

Changed

  • Publish PyPI wheels for CPython 3.14.

Fixed

  • Fix str on big-endian architectures.

- Python
Published by ijl 7 months ago

https://github.com/ijl/orjson - 3.11.0

Changed

  • Use a deserialization buffer allocated per request instead of a shared buffer allocated on import.
  • ABI compatibility with CPython 3.14 beta 4.

- Python
Published by ijl 7 months ago

https://github.com/ijl/orjson - 3.10.18

Fixed

  • Fix incorrect escaping of the vertical tabulation character. This was introduced in 3.10.17.

- Python
Published by ijl 10 months ago

https://github.com/ijl/orjson - 3.10.17

Changed

  • Publish PyPI Windows aarch64/arm64 wheels.
  • ABI compatibility with CPython 3.14 alpha 7.
  • Fix incompatibility running on Python 3.13 using WASM.

- Python
Published by ijl 10 months ago

https://github.com/ijl/orjson - 3.10.16

Changed

  • Improve performance of serialization on amd64 machines with AVX-512.
  • ABI compatibility with CPython 3.14 alpha 6.
  • Drop support for Python 3.8.
  • Publish additional PyPI wheels for macOS that target only aarch64, macOS 15, and recent Python.

- Python
Published by ijl 11 months ago

https://github.com/ijl/orjson - 3.10.15

Changed

  • Publish PyPI manylinux aarch64 wheels built and tested on aarch64.
  • Publish PyPI musllinux aarch64 and arm7l wheels built and tested on aarch64.
  • Publish PyPI manylinux Python 3.13 wheels for i686, arm7l, ppc64le, and s390x.

- Python
Published by ijl about 1 year ago

https://github.com/ijl/orjson - 3.10.14

Changed

  • Specify build system dependency on maturin>=1,<2 again.
  • Allocate memory using PyMem_Malloc() and similar APIs for integration with pymalloc, mimalloc, and tracemalloc.
  • Source distribution does not ship compressed test documents and relevant tests skip if fixtures are not present.
  • Build now depends on Rust 1.82 or later instead of 1.72.

- Python
Published by ijl about 1 year ago

https://github.com/ijl/orjson - 3.10.13

Changed

  • Fix compatibility with maturin introducing a breaking change in 1.8.0 and specify a fixed version of maturin. Projects relying on any previous version being buildable from source by end users (via PEP 517) must upgrade to at least this version.

- Python
Published by ijl about 1 year ago

https://github.com/ijl/orjson - 3.10.12

Changed

  • Publish PyPI manylinux i686 wheels.
  • Publish PyPI musllinux i686 and arm7l wheels.
  • Publish PyPI macOS wheels for Python 3.10 or later built on macOS 15.
  • Publish PyPI Windows wheels using trusted publishing.

- Python
Published by ijl about 1 year ago

https://github.com/ijl/orjson - 3.10.11

Changed

  • Improve performance of UUIDs.
  • Publish PyPI wheels with trusted publishing and PEP 740 attestations.
  • Include text of licenses for vendored dependencies.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.10

Fixed

  • Fix int serialization on s390x. This was introduced in 3.10.8.

Changed

  • Publish aarch64 manylinux217 wheel for 3.13 to PyPI.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.9

Fixed

  • Fix int serialization on 32-bit Python 3.8, 3.9, 3.10. This was introduced in 3.10.8.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.8

Changed

  • int serialization no longer chains OverflowError to the the __cause__ attribute of orjson.JSONEncodeError when range exceeded.
  • Compatibility with CPython 3.14 alpha 1.
  • Improve performance.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.7

Changed

  • Improve performance of stable Rust amd64 builds.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.6

Changed

  • Improve performance.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.5

Changed

  • Improve performance.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.4

Changed

  • Improve performance.

- Python
Published by ijl over 1 year ago

https://github.com/ijl/orjson - 3.10.3

Changed

  • manylinux amd64 builds include runtime-detected AVX-512 str implementation.
  • Tests now compatible with numpy v2.

- Python
Published by ijl almost 2 years ago

https://github.com/ijl/orjson - 3.10.2

Fixed

  • Fix crash serializing str introduced in 3.10.1.

Changed

  • Improve performance.
  • Drop support for arm7.

- Python
Published by ijl almost 2 years ago

https://github.com/ijl/orjson - 3.10.1

Fixed

  • Serializing numpy.ndarray with non-native endianness raises orjson.JSONEncodeError.

Changed

  • Improve performance of serializing.

- Python
Published by ijl almost 2 years ago

https://github.com/ijl/orjson - 3.10.0

Changed

  • Support serializing numpy.float16 (numpy.half).
  • sdist uses metadata 2.3 instead of 2.1.
  • Improve Windows PyPI builds.

- Python
Published by ijl almost 2 years ago

https://github.com/ijl/orjson - 3.9.15

Fixed

  • Implement recursion limit of 1024 on orjson.loads().
  • Use byte-exact read on str formatting SIMD path to avoid crash.

- Python
Published by ijl almost 2 years ago

https://github.com/ijl/orjson - 3.9.14

Fixed

  • Fix crash serializing str introduced in 3.9.11.

Changed

  • Build now depends on Rust 1.72 or later.

- Python
Published by ijl about 2 years ago

https://github.com/ijl/orjson - 3.9.13

Fixed

  • Serialization str escape uses only 128-bit SIMD.
  • Fix compatibility with CPython 3.13 alpha 3.

Changed

  • Publish musllinux_1_2 instead of musllinux_1_1 wheels.
  • Serialization uses small integer optimization in CPython 3.12 or later.

- Python
Published by ijl about 2 years ago

https://github.com/ijl/orjson - 3.9.12

Fixed

  • Minimal musllinux_1_1 build due to sporadic CI failure.

Changed

  • Update benchmarks in README.

- Python
Published by ijl about 2 years ago

https://github.com/ijl/orjson - 3.9.11

Changed

  • Improve performance of serializing. str is significantly faster. Documents using dict, list, and tuple are somewhat faster.

- Python
Published by ijl about 2 years ago

https://github.com/ijl/orjson - 3.9.10

Fixed

  • Fix debug assert failure on 3.12 --profile=dev build.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.9

Changed

  • orjson module metadata explicitly marks subinterpreters as not supported.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.8

Changed

  • Improve performance.
  • Drop support for Python 3.7.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.7

Fixed

  • Fix crash in orjson.loads() due to non-reentrant handling of persistent buffer. This was introduced in 3.9.3.
  • Handle some FFI removals in CPython 3.13.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.6

Fixed

  • Fix numpy reference leak on unsupported array dtype.
  • Fix numpy.datetime64 reference handling.

Changed

  • Minor performance improvements.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.5

Fixed

  • Remove futex from module import and initialization path.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.4

Fixed

  • Fix hash builder using default values.
  • Fix non-release builds of orjson copying large deserialization buffer from stack to heap. This was introduced in 3.9.3.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.3

Fixed

  • Fix compatibility with CPython 3.12.

Changed

  • Support i686/x86 32-bit Python installs on Windows.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.2

Fixed

  • Fix the __cause__ exception on orjson.JSONEncodeError possibly being denormalized, i.e., of type str instead of Exception.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.1

Fixed

  • Fix memory leak on chained tracebacks of exceptions raised in default. This was introduced in 3.8.12.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.9.0

Added

  • orjson.Fragment includes already-serialized JSON in a document.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.8.14

Changed

  • PyPI manylinux wheels are compiled for x86-64 instead of x86-64-v2.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.8.13

Changed

  • Source distribution contains all source code required for an offline build.
  • PyPI macOS wheels use a MACOSX_DEPLOYMENT_TARGET of 10.15 instead of 11.
  • Build uses maturin v1.

- Python
Published by ijl over 2 years ago

https://github.com/ijl/orjson - 3.8.12

Changed

  • Exceptions raised in default are now chained as the __cause__ attribute on orjson.JSONEncodeError.

- Python
Published by ijl almost 3 years ago

https://github.com/ijl/orjson - 3.8.11

Changed

  • orjson.loads() on an empty document has a specific error message.
  • PyPI manylinux_2_28_x86_64 wheels are compiled for x86-64-v2.
  • PyPI macOS wheels are only universal2 and compiled for x86-64-v2 and apple-m1.

- Python
Published by ijl almost 3 years ago

https://github.com/ijl/orjson - 3.8.10

Fixed

  • Fix compatibility with CPython 3.12.0a7.
  • Fix compatibility with big-endian architectures.
  • Fix crash in serialization.

Changed

  • Publish musllinux 3.11 wheels.
  • Publish s390x wheels.

- Python
Published by ijl almost 3 years ago

https://github.com/ijl/orjson - 3.8.9

Fixed

  • Fix parallel initialization of orjson.

- Python
Published by ijl almost 3 years ago

https://github.com/ijl/orjson - 3.8.8

Changed

  • Publish ppc64le wheels.

- Python
Published by ijl almost 3 years ago

https://github.com/ijl/orjson - 3.8.7

Fixed

  • Use serialization backend introduced in 3.8.4 only on well-tested platforms such as glibc, macOS by default.

- Python
Published by ijl almost 3 years ago

https://github.com/ijl/orjson -

Fixed

  • Fix crash serializing when using musl libc.

Changed

  • Make python-dateutil optional in tests.
  • Handle failure to load system timezones in tests.

- Python
Published by ijl about 3 years ago

https://github.com/ijl/orjson - 3.8.5

Fixed

  • Fix orjson.dumps() invalid output on Windows.

- Python
Published by ijl about 3 years ago

https://github.com/ijl/orjson - 3.8.4

Changed

  • Improve performance.

- Python
Published by ijl about 3 years ago

https://github.com/ijl/orjson - 3.8.3

Fixed

  • orjson.dumps() accepts option=None per Optional[int] type.

- Python
Published by ijl about 3 years ago

https://github.com/ijl/orjson - 3.8.2

Fixed

  • Fix tests on 32-bit for numpy.intp and numpy.uintp.

Changed

  • Build now depends on rustc 1.60 or later.
  • Support building with maturin 0.13 or 0.14.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.8.1

Changed

  • Build maintenance for Python 3.11.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.8.0

Changed

  • Support serializing numpy.int16 and numpy.uint16.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.12

Fixed

  • Fix datetime regression tests with tzinfo 2022b.

Changed

  • Improve performance.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.11

Fixed

  • Revert dict iterator implementation introduced in 3.7.9.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.10

Fixed

  • Fix serializing dict with deleted final item. This was introduced in 3.7.9.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.9

Changed

  • Improve performance of serializing.
  • Improve performance of serializing pretty-printed (orjson.OPT_INDENT_2) to be much nearer to compact.
  • Improve performance of deserializing str input.
  • orjson now requires Rust 1.57 instead of 1.54 to build.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.8

Changed

  • Build makes best effort instead of requiring "--features".
  • Build using maturin 0.13.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.7

Changed

  • Support Python 3.11.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.6

Changed

  • Handle unicode changes in CPython 3.12.
  • Build PyPI macOS wheels on 10.15 instead of 12 for compatibility.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.5

Fixed

  • Fix issue serializing dicts that had keys popped and replaced. This was introduced in 3.7.4.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.4

Changed

  • Improve performance.

Fixed

  • Fix deallocation of orjson.JSONDecodeError.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.3

Changed

  • Improve build.
  • Publish aarch64 musllinux wheels.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.2

Changed

  • Improve deserialization performance.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.1

Fixed

  • Type stubs for orjson.JSONDecodeError now inherit from json.JSONDecodeError instead of ValueError
  • Null-terminate the internal buffer of orjson.dumps() output.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.7.0

Changed

  • Improve deserialization performance significantly through the use of a new backend. PyPI wheels for manylinux228 and macOS have it enabled. Packagers are advised to see the README.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.6.9

Changed

  • Improve serialization and deserialization performance.

- Python
Published by ijl over 3 years ago

https://github.com/ijl/orjson - 3.6.8

Fixed

  • Fix serialization of numpy.datetime64("NaT") to raise on an unsupported type.

- Python
Published by ijl almost 4 years ago

https://github.com/ijl/orjson - 3.6.7

Changed

  • Improve performance of deserializing almost-empty documents.
  • Publish arm7l manylinux_2_17 wheels to PyPI.
  • Publish amd64 musllinux_1_1 wheels to PyPI.

Fixed

  • Fix build requiring python on PATH.

- Python
Published by ijl about 4 years ago

https://github.com/ijl/orjson - 3.6.6

Changed

  • Improve performance of serializing datetime.datetime using tzinfo that are zoneinfo.ZoneInfo.

Fixed

  • Fix invalid indexing in line and column number reporting in JSONDecodeError.
  • Fix orjson.OPT_STRICT_INTEGER not raising an error on values exceeding a 64-bit integer maximum.

- Python
Published by ijl about 4 years ago

https://github.com/ijl/orjson - 3.6.5

Fixed

  • Fix build on macOS aarch64 CPython 3.10.
  • Fix build issue on 32-bit.

- Python
Published by ijl about 4 years ago

https://github.com/ijl/orjson - 3.6.4

Fixed

  • Fix serialization of dataclass inheriting from abc.ABC and using __slots__.
  • Decrement refcount for numpy PyArrayInterface.
  • Fix build on recent versions of Rust nightly.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.6.3

Fixed

  • Fix build on aarch64 using the Rust stable channel.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.6.2

Changed

  • orjson now compiles on Rust stable 1.54.0 or above. Use of some SIMD usage is now disabled by default and packagers are advised to add --cargo-extra-args="--features=unstable-simd" to the maturin build command if they continue to use nightly.
  • orjson built with --features=unstable-simd adds UTF-8 validation implementations that use AVX2 or SSE4.2.
  • Drop support for Python 3.6.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.6.1

Changed

  • orjson now includes a pyi type stubs file.
  • Publish manylinux224 wheels instead of manylinux2014.

Fixed

  • Fix compilation on latest Rust nightly.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.6.0

Added

  • orjson.dumps() serializes numpy.datetime64 instances as RFC 3339 strings.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.5.4

Fixed

  • Fix memory leak serializing datetime.datetime with tzinfo.
  • Fix wrong error message when serializing an unsupported numpy type without default specified.

Changed

  • Publish python3.10 and python3.9 manylinux224 wheels.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.5.3

Fixed

  • orjson.JSONDecodeError now has pos, lineno, and colno.
  • Fix build on recent versions of Rust nightly.

- Python
Published by ijl over 4 years ago

https://github.com/ijl/orjson - 3.5.2

Changed

  • Improve serialization and deserialization performance.
  • orjson.dumps() serializes individual numpy.bool_ objects.

- Python
Published by ijl almost 5 years ago

https://github.com/ijl/orjson - 3.5.1

Changed

  • Publish universal2 wheels for macOS supporting Apple Silicon (aarch64).

- Python
Published by ijl almost 5 years ago

https://github.com/ijl/orjson - 3.5.0

Added

  • orjson.loads() supports reading from memoryview objects.

Fixed

  • datetime.datetime and datetime.date zero pad years less than 1000 to four digits.
  • sdist pins maturin 0.9.0 to avoid breaks in later 0.9.x.

Changed

  • orjson.dumps() when given a non-C contiguous numpy.ndarray has an error message suggesting to use default.

- Python
Published by ijl almost 5 years ago

https://github.com/ijl/orjson - 3.4.8

Fixed

  • aarch64 manylinux2014 wheels are now compatible with glibc 2.17.

Changed

  • Fix build warnings on ppcle64.

- Python
Published by ijl about 5 years ago

https://github.com/ijl/orjson - 3.4.7

Changed

  • Use vectorcall APIs for method calls on python3.9 and above.
  • Publish python3.10 wheels for Linux on amd64 and aarch64.

- Python
Published by ijl about 5 years ago

https://github.com/ijl/orjson - 3.4.6

Fixed

  • Fix compatibility with debug builds of CPython.

- Python
Published by ijl about 5 years ago

https://github.com/ijl/orjson - 3.4.5

Fixed

  • Fix deserializing long strings on processors without AVX2.

- Python
Published by ijl about 5 years ago

https://github.com/ijl/orjson - 3.4.4

Changed

  • orjson.dumps() serializes integers up to a 64-bit unsigned integer's maximum. It was previously the maximum of a 64-bit signed integer.

- Python
Published by ijl about 5 years ago

https://github.com/ijl/orjson - 3.4.3

Fixed

  • Fix regression in parsing similar dict keys.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.4.2

Changed

  • Improve deserialization performance.
  • Publish Windows python3.9 wheel.
  • Disable unsupported SIMD features on non-x86, non-ARM targets

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.4.1

Fixed

  • Fix orjson.dumps.__module__ and orjson.loads.__module__ not being the str "orjson".

Changed

  • Publish macos python3.9 wheel.
  • More packaging documentation.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.4.0

Added

  • Serialize numpy.uint8 and numpy.int8 instances.

Fixed

  • Fix serializing numpy.empty() instances.

Changed

  • No longer publish manylinux1 wheels due to tooling dropping support.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.3.1

Fixed

  • Fix failure to deserialize some latin1 strings on some platforms. This was introduced in 3.2.0.
  • Fix annotation of optional parameters on orjson.dumps() for help().

Changed

  • Publish manylinux2014 wheels for amd64 in addition to manylinux1.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.3.0

Added

  • orjson.dumps() now serializes individual numpy floats and integers, e.g., numpy.float64(1.0).
  • orjson.OPT_PASSTHROUGH_DATACLASS causes orjson.dumps() to pass dataclasses.dataclass instances to default.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.2.2

Fixed

  • Fix serializing dataclasses.dataclass that have no attributes.

Changed

  • Improve deserialization performance of str.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.2.1

Fixed

  • Fix orjson.dumps(..., **{}) raising TypeError on python3.6.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.2.0

Added

  • orjson.OPT_APPEND_NEWLINE appends a newline to output.

Changed

  • Improve deserialization performance of str.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.1.2

Fixed

  • Fix serializing zero-dimension numpy.ndarray.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.1.1

Fixed

  • Fix repeated serialization of str that are ASCII-only and have a legacy (non-compact) layout.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.1.0

Added

  • orjson.OPT_PASSTHROUGH_SUBCLASS causes orjson.dumps() to pass subclasses of builtin types to default so the caller can customize the output.
  • orjson.OPT_PASSTHROUGH_DATETIME causes orjson.dumps() to pass datetime objects to default so the caller can customize the output.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.0.2

Changed

  • orjson.dumps() does not serialize dataclasses.dataclass attributes that begin with a leading underscore, e.g., _attr. This is because of the Python idiom that a leading underscores marks an attribute as "private."
  • orjson.dumps() does not serialize dataclasses.dataclass attributes that are InitVar or ClassVar whether using __slots__ or not.

- Python
Published by ijl over 5 years ago

https://github.com/ijl/orjson - 3.0.1

Fixed

  • orjson.dumps() raises an exception if the object to be serialized is not given as a positional argument. orjson.dumps({}) is intended and ok while orjson.dumps(obj={}) is an error. This makes it consistent with the documentation, help() annotation, and type annotation.
  • Fix orphan reference in exception creation that leaks memory until the garbage collector runs.

Changed

  • Improve serialization performance marginally by using the fastcall/vectorcall calling convention on python3.7 and above.
  • Reduce build time.

- Python
Published by ijl almost 6 years ago