Repository navigation
What's Changed
This release has smaller and faster in-memory representations for Timestamp, Decimal, Int, UInt, IonError, and Element annotations, plus faster text parsing and binary encoding. It also removes the incomplete Ion 1.1 implementation.
New Features
TimestampBuilder::localize_to_offset(#1055)- Experimental:
is_inlineonInt,UInt,Coefficient, andDecimal(#1068) - Experimental: managed writer instances can be reused (#1054)
Performance
Timestampis now a 16-byte packed representation (#1041)Decimalis now 24 bytes, backed by an overflowing-integerCoefficient(#1044, #1057)IntandUIntare backed by the same overflowing-integer representation (#1064)IonErroris 32 bytes; large payloads are boxed (#1043)Elementannotations are packed into a single tagged pointer (#1053)Structfields are stored in a boxed slice with a lazily built index (#1048)- Faster binary
VarUInt/VarIntwriters and stack-encoded int/decimal magnitudes (#1047, #1049) - Reduced whitespace and field-name parsing overhead in the text reader (#1061)
Breaking change to experimental features
- The
experimental-ion-1-1Cargo feature and the incomplete Ion 1.1 implementation behind it have been removed (#1056). Crates that enableexperimental-ion-1-1must remove it from their feature list to build with this release.
Other changes
- The
chronodependency is now only pulled in by theexperimental-chronofeature. - CI now checks the stable public API against a committed baseline (#1042).
New Contributors
Full Changelog: v1.0.1...v1.1.0