Skip to content

Releases: Antares0982/ssrJSON

Release 0.0.16

03 Mar 16:05
f86fa89

Choose a tag to compare

  • Replace zmij (Rust) with xjb64, an extremely fast float-to-string algorithm, which is 10%+ faster than zmij and compliant with Python json. Thanks the author of xjb64 @xjb714 for Python porting guidance.
  • Other internal refactors.

Release 0.0.14

19 Feb 08:47
2c43241

Choose a tag to compare

This is a performance improvement release.

#27 Refactor encoding call args for performance, gives a 7%~60% performance improvement on fast paths
#28 :

  • Replace Dragonbox with Żmij (Rust implementation), a faster implementation of writing floats
  • Some internal refactors that improve performance

Breaking changes:

Żmij (Rust implementation) output fixed-point notations instead of scientific notations when possible. Before this release ssrJSON (using Dragonbox) outputs a scientific notation.

Release 0.0.13

08 Feb 10:58
2d70756

Choose a tag to compare

Support free-threading (Python >= 3.14). Distribute wheel for cp314t (not lock-free).
Bugfix: decoding ref count leak when repeated key appears in the string.

Release 0.0.12

28 Jan 16:06
e2c2338

Choose a tag to compare

This is a bug fix version.

  • Fix memory access violation when calling loads with object_hook in multi-threads. The problem will occur when GIL is released in the hook function in version 0.0.11.

Breaking change:

  • Linux: GLIBC version requirement is updated from 2.17 to 2.34. If you use glibc below 2.34, we recommend you to build ssrJSON from source.

Release 0.0.11

24 Jan 20:49
177d7b2

Choose a tag to compare

Implement object_hook functionality, by @Nambers #23
And other internal refactors (function rename, code cleanup)

Release 0.0.10

05 Jan 17:44
49b7419

Choose a tag to compare

  • Fix bug that wheels on PyPI for MacOS are not working
  • Now you can use SSRJSON_WRITE_UTF8_CACHE env variable to control whether to write cache when importing ssrJSON the first time
  • Keys in the output of get_current_features become snake_case now (breaking change)

Release 0.0.9

05 Dec 14:37
b9959c4

Choose a tag to compare

This is a bugfix version.

Changes:

  • For short strings (len < 6), writing cache is disabled even if requested.

Bug fixes:

  • Fix raising error when is_write_cache is passed to dumps_to_bytes .
  • Fix incorrect error message when unexpected keyword argument is passed.

Release 0.0.8

15 Nov 18:15
4cf2b38

Choose a tag to compare

  • #18 Use fastcall protocol to accelerate argument parsing. Small JSON will parse faster than before.
  • #19 Support writing and reading UTF-8 cache. Largely improve performance. Add is_write_cache argument to dumps_to_bytes, and ssrjson.write_utf8_cache function. They are used for controlling the cache writing behavior. More details can be found in README.
  • Internal refactors and fixes:
    • Use an accurate way to calculate the actual buffer size to reserve.
    • Statically assert 64-bits platform and having IEEE754 double.
    • Other small changes

Release 0.0.7

22 Oct 16:36
2131081

Choose a tag to compare

  • Support MacOS (aarch64)
  • Improve performance of dumps_to_bytes for ASCII path

No new feature was introduced compared to version 0.0.6

Release 0.0.6

18 Oct 18:17
11045d3

Choose a tag to compare

From version 0.0.6, we will not distribute binary for Python3.9 since it has reached the end of life.

  • Distribute binary for Python3.14
  • Performance improvement for AVX2 encoding, and other improvements for encoding #14 #16
  • Other internal refactors