github doronz88/pymobiledevice3 v11.33.0

2 hours ago

Highlights

⚡ Faster RemoteXPC

pymobiledevice3.binary now has composable codecs (Prefixed, Aligned, PrefixedArray, Switch, Tuple, CString, …) for variable-length data, and nested reads no longer copy bytes. RemoteXPC messages are declared with them: building a message is ~30% faster and parsing ~20% faster than v11.32.0 (~6x and ~11x faster than the construct-based code before v11.32.0). Stackshot parsing is ~10% faster.

🐛 Clearer binary parse/build errors

BinaryDataError now carries the location of the failure, e.g. [30] -> STRING at offset 544: expected 100000 bytes, found 820.

⚠️ Internal API changes

The low-level helpers encode_utf8_cstring(), pad_to(), ByteReader.prefixed() and ByteReader.read_utf8_cstring() were removed; use CSTRING.build(), Aligned, Prefixed and CSTRING.read() instead (#2034). Building a TLV8 item longer than 255 bytes now raises BinaryBuildError instead of ValueError.

What's Changed

Full Changelog: v11.32.0...v11.33.0

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.