Repository navigation
v0.5.0
Makes the PNG auto filter adaptive at every compressing effort, which shrinks default PNG output, and lets other Python threads run while large results are copied. Review the breaking change if you depend on the exact PNG bytes of 0.4.x.
⚠️ Breaking changes
- The PNG
autofilter now writes adaptively filtered scanlines at every compression effort. Before,autofiltered only at thefasteffort, so raisingpng_compressiontodefault,bestor levels 1-9 gave larger and slower output on continuous-tone content (+13% size and 2.1-2.6x CPU fromfasttodefaulton a 2,075-texture corpus). Decoded pixels are unchanged, but the default PNG bytes of exports and encodes differ from 0.4.x. To keep the old bytes, passpng_filter: none/--png-filter none, or pin 0.4.x. Level 0 stays unfiltered, andfastoutput is byte-identical to 0.4.x. (b59be94)
Performance
- Release the GIL in the Python binding while copying payloads of 64 KiB or more into
bytesresults (rgba, audio and binary payloads, JSON, FBX/OBJ, encoded images). Copying a 4 MiBrgbaacross 8 threads goes from 5,385 to 7,542 it/s, with no measurable single-thread cost. (85f76ee)
Artifacts
- Python:
unity-rs0.5.0 on PyPI (cp39-abi3wheels for six platforms and an sdist). - Rust:
unity-rs-coreandunity-rs-cli0.5.0 on crates.io. - CLI archives (
unity-rs-cli-0.5.0-<platform>) and Node.js addon packages (unity-rs-node-0.5.0-<platform>.tgz) for Linux, macOS and Windows on x64 and arm64: attached below, with checksums inSHA256SUMS.
Maintenance
Full Changelog: v0.4.0...v0.5.0