Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 14:38
· 5 commits to main since this release
v0.6.0
29fe40d

Reads one-byte type tree arrays as compact byte arrays, so large byte vectors such as 20-45 MB Live2D CubismMoc data now read and export as JSON. The Rust API of unity-rs-core changes; Python, Node and CLI signatures do not.

⚠️ Breaking changes

  • TypeValue is now #[non_exhaustive] and has a new TypeValue::ByteArray { element, bytes } variant. One-byte UInt8, SInt8 and char vectors (for example Live2D CubismMoc._bytes and Font.m_FontData) are read as ByteArray instead of an Array of per-byte values. Add a _ => arm to exhaustive matches, and match ByteArray or use as_bytes() where you expected an Array. See the migration notes. (#37)
  • TypeTreeReadLimits has a new field, maximum_byte_array_bytes (default 256 MiB). Struct literals without ..TypeTreeReadLimits::default() no longer compile; add the field or the spread. (#37)
  • Budgets charge each container slot once and byte arrays by their length, so a hand-tuned maximum_materialized_bytes admits about twice as much element-wise data; re-derive it if you used it as an element cap. Byte arrays count as one value and are bounded by maximum_byte_array_bytes instead of maximum_array_elements; set it if you relied on those limits to refuse long byte vectors. The refusal messages for oversized byte vectors changed. (#37)

Changed

  • On every surface (CLI, Python, Node), objects that 0.5 refused because of a large byte vector now read and export as JSON. JSON and dump output is byte-identical for every object 0.5 already read. (#37)

Upgrade notes

  • A 45 MB moc becomes about 160 MB of compact or 386 MB of pretty JSON. Python read_type_tree_json / read_mono_behaviour_json and export JSON budgets default to 256 MiB, and export is pretty by default, so use compact output (--compact-json) or raise the output budget for such objects. Node readTypeTreeJson defaults to 512 MiB. (#37)

Artifacts

  • Python: unity-rs 0.6.0 on PyPI (cp39-abi3 wheels for six platforms and an sdist).
  • Rust: unity-rs-core and unity-rs-cli 0.6.0 on crates.io.
  • CLI archives (unity-rs-cli-0.6.0-<platform>) and Node.js addon packages (unity-rs-node-0.6.0-<platform>.tgz) for Linux, macOS and Windows on x64 and arm64: attached below, with checksums in SHA256SUMS-v0.6.0.txt.
Maintenance
  • Bump the workspace version to 0.6.0. (#38)

Full Changelog: v0.5.5...v0.6.0