Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@

6.4.0 / 2026-07-13
==================

* perf: buffer Rust serializer writes in bounded 16 KiB chunks, reducing large-payload conversion time while keeping serializer memory near 80 MiB
* chore: release ``json2xml-rs`` 0.4.1 and require it from ``json2xml[fast]`` for accelerated installs
* docs: record before-and-after Rust buffering benchmarks and the unchanged XML output size


6.3.0 / 2026-06-10
==================

Expand Down
21 changes: 21 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
# json2xml 6.4.0 and json2xml_rs 0.4.1

Released 2026-07-13.

## Highlights

- Added bounded 16 KiB buffering to the Rust serializer's direct Python-bytes output path.
- Reduced the 5,000-record benchmark median from roughly 4.8 ms to 2.4 ms while keeping serializer memory near 80 MiB.
- Kept XML output byte-for-byte identical.

## Package Versions

- Python package: `json2xml==6.4.0`
- Rust accelerator package: `json2xml-rs==0.4.1`
- Fast install: `pip install "json2xml[fast]"`

## Verification

The release passed the Python and Rust test suites, Rust wheel builds across supported platforms, and the Rust wheel compatibility matrix.


# json2xml 6.3.0 and json2xml_rs 0.4.0

Released 2026-06-10.
Expand Down
2 changes: 1 addition & 1 deletion json2xml/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

__author__ = """Vinit Kumar"""
__email__ = "mail@vinitkumar.me"
__version__ = "6.3.0"
__version__ = "6.4.0"
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "json2xml"
version = "6.3.0"
version = "6.4.0"
description = "Simple Python Library to convert JSON to XML"
readme = "README.rst"
requires-python = ">=3.10"
Expand Down Expand Up @@ -50,7 +50,7 @@ dev = [
"pygments>=2.20.0",
"xmltodict>=0.12.0",
]
fast = ["json2xml-rs>=0.4.0"]
fast = ["json2xml-rs>=0.4.1"]

[tool.pytest.ini_options]
testpaths = ["tests"]
Expand Down
2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "json2xml_rs"
version = "0.4.0"
version = "0.4.1"
edition = "2024"
rust-version = "1.96"
description = "Fast native JSON to XML conversion for Python"
Expand Down
2 changes: 1 addition & 1 deletion rust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The Rust implementation is expected to be 5-15x faster than pure Python for:
- Type dispatch (compiled match statements vs. `isinstance()` chains)
- String building (pre-allocated buffers vs. f-string concatenation)

Version 0.4.0 builds on the direct Python bytes writer with lower allocation
Version 0.4.1 builds on the direct Python bytes writer with lower allocation
pressure in hot serializer paths. The previous 0.3.0 release reduced the
measured serializer RSS delta for a 100,000-record benchmark by about 49%
compared with the earlier Rust implementation.
Expand Down
2 changes: 1 addition & 1 deletion rust/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "json2xml_rs"
version = "0.4.0"
version = "0.4.1"
description = "Fast native JSON to XML conversion - Rust extension for json2xml"
readme = "README.md"
requires-python = ">=3.9"
Expand Down
64 changes: 33 additions & 31 deletions uv.lock

Large diffs are not rendered by default.

Loading