Skip to content

0.14.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@chmp chmp released this 30 Nov 21:06
· 20 commits to main since this release
bf7262c

This release refactors the implementation for serialization. All serializers now directly implement serde::Serializer instead of a custom trait. There are no breaking changes to the public interface, except for a polish of error messages.

  • Performance improvements:
    • Avoid unncessary allocations in serialization
    • Reserve elements up front
  • Improved error reporting in serialization:
    • The field and data type is now reported more consistently across builders
  • More consistent handling of the serde data model in serialization:
    • Tuple variants, tuple structs can be used where tuples could be used
    • Treat newtype variants as transparents wrappers
    • Struct variants can be used where structs could be used
    • Support tuples, tuple, structs, tuple variants, bytes for FixedSizeList
    • Allow to serialize sequences for structs, similar to tuples
  • Add options to consume the builder ArrayBuilder::into_arrow, ArrayBuilder::into_record_batch, ArrayBuilder::into_marrow that avoid additional allocations for metadata