v0.4.1
v0.4.1
This release focuses on lower allocation overhead in key folding, faster direct bytes input from Python, and stronger release-profile optimization.
Highlights
- Reduced key-folding overhead in the Rust encoder by removing the temporary sibling
HashSetallocation. Collision checks now reusesonic_rs::Objectlookups directly. - Avoided an unnecessary memory copy in
etoon.dumps()when the input is alreadybytes.bytearrayinputs still copy once into immutable bytes before entering the Rust binding. - Enabled full LTO for release builds (
lto = true) to improve cross-crate optimization.
Performance
- PR benchmark notes reported the release-profile change improving encode time from about
8.26usto7.91usin the tested case. - The key-folding path now avoids per-object sibling-set allocation when folding is enabled.
CI And Release
- OpenSSF Scorecard now runs on
mainbranch pushes and weekly schedule, matching Scorecard's expected trigger model. - Release artifacts are built for Linux, macOS, and Windows, with Python wheels for CPython 3.10-3.13.
Install
cargo install etoonpip install etoonVerification
cargo testuv run pytest tests/test_spec_fixtures.py
Release Assets
etoon-linux-x86_64etoon-linux-aarch64etoon-macos-x86_64etoon-macos-aarch64etoon-windows-x86_64.exeSHA256SUMS.txt
VirusTotal Scan Results
etoon-linux-aarch64etoon-linux-x86_64etoon-macos-aarch64etoon-macos-x86_64etoon-windows-x86_64.exe
Full changelog: v0.3.0...v0.4.1