Skip to content

v1.2.0

Latest

Choose a tag to compare

@popematt popematt released this 24 Oct 16:33
· 2 commits to main since this release
815750e

Summary

This release makes binary writes 22–50% faster in benchmarks: writer symbol tables no longer allocate per symbol, and readers no longer build a text→SID map (#1065). For custom WriteAsIon implementations, IonError::application makes it possible to raise application-specific errors (#1073), and the experimental ValueWriter::Encoding makes it possible to encode a nested stream, such as a blob payload, in the same encoding as the enclosing writer (#1079). WriteConfig::with_max_depth sets a limit on how deeply containers can nest when writing; the default is 65,535 (#1074). Finally, experimental-serde can now deserialize internally tagged enums (#[serde(tag = "...")]) from both text and binary Ion (#1077).

What's Changed

  • docs: add AGENTS.md with contributor guidance for coding agents by @popematt in #1070
  • fix(writer): defer field name until StructWriter::write value is written by @popematt in #1072
  • fix: make binary LazyElement sound without lifetime erasure by @popematt in #1058
  • feat(writer): add WriteConfig::with_max_depth by @popematt in #1074
  • fix(reader): use Rc::assume_init in IoBuffer::alloc_zeroed by @popematt in #1075
  • Split symbol table by @JW-Huang in #1065
  • feat(error): add IonError::Application for user-raised errors by @popematt in #1073
  • feat(writer): expose ValueWriter::Encoding by @popematt in #1079
  • refactor(reader): drop untested unsafe from ExpandingReader by @popematt in #1078
  • fix(text): make text LazyElement sound without lifetime erasure by @popematt in #1080
  • fix(serde): deserialize internally tagged enums by @sgpthomas in #1077
  • fix(serde): tunnel Decimal and Timestamp as byte payloads by @popematt in #1082
  • chore: version bump to v1.2.0 by @popematt in #1083

New Contributors

Full Changelog: v1.1.0...v1.2.0