unity-rs 0.4.0
Breaking change
LDR ASTC textures now decode with the ASTC specification's top-byte conversion, matching Khronos astcenc, UnityPy, and GPU output byte for byte. Output differs from 0.3.x by at most one level per channel on some texels; pin 0.3.x if you depend on the previous AssetStudio-compatible rounding. Committed astcenc reference vectors are the normative test gate, and the managed differential now carries the remaining deviation as a declared, bounded contract. HDR ASTC and BC6H are unchanged.
Fixes
- Binary FBX array compression feeds deflate in 16 KiB chunks (~1.5x faster, byte-identical output) and Core exposes a Fast compression effort (7.5-12.6x on mesh float arrays)
- Extraction no longer decompresses every UnityFS entry in full just to probe its header
- Single-block (typically LZMA) bundles decode each block once per walk instead of once per entry (2.95x on a 17 MB bundle, reaching the raw decode floor)
- CI caches cargo registries and build artifacts, and core-crate packaging is immune to restored caches
Full Changelog: v0.3.0...v0.4.0