Skip to content

Releases: chmp/serde_arrow

0.14.1

03 May 11:43
c5c9488

Choose a tag to compare

  • Support _ separators when serializing strings to "Float16, Float32, Float64", and "Decimal128"
  • Allow to build bools from integers. Nonzero integers are mapped to true
  • Allow to deserialize "Float16", "Float32", "Float64", "Decimal128" to string
  • Allow to deserialize tuples and bytes from FixedSizeList
  • Allow to deserialize bytes from List arrays

0.14.0

23 Feb 21:56
914041f

Choose a tag to compare

  • Add arrow=58 support
  • Performance improvements:
    • Avoid unnecessary allocations in serialization
    • Reserve elements up front
  • Breaking change: refactored error handling
    • Turn Error into a struct
    • Expand ErrorKind with the variants MissingField, NullabilityViolation
    • Remove Error::custom in favor of Error::new
    • Remove Error::custom_from in favor of Error::new_from
  • 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 transparent 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
  • Refactored internals: all serializers now directly implement serde::Serializer instead of a custom trait.

0.14.0-rc.1

30 Nov 21:06
bf7262c

Choose a tag to compare

0.14.0-rc.1 Pre-release
Pre-release

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

0.13.7

08 Nov 17:26
d91e164

Choose a tag to compare

0.13.6

06 Sep 10:49

Choose a tag to compare

0.13.5

02 Aug 15:30
13d4766

Choose a tag to compare

  • Add arrow=56 support

0.13.4

09 Jun 09:02
0ebb933

Choose a tag to compare

  • Allow dictionaries with nullable values to be deserialized, if all values are valid

Thanks

The following people contributed to this release:

  • @ryzhyk improved the null checks in dictionary deserialization (#277)

0.13.3

13 Apr 13:41
f42d43c

Choose a tag to compare

  • Fix: Use the correct lower bound for marrow to enable arrow=55

0.13.2

13 Apr 07:58
39e1b4d

Choose a tag to compare

  • Add arrow=55 support
  • Allow primitive to string conversion (#272)
    • Adds the option allow_to_string to TracerOptions to allow numbers, booleans and chars to coerce to strings (false by default)
    • Allows for numbers, booleans and chars to be serialized to strings

Thanks

The following people contributed to this release:

0.13.1

22 Mar 12:13
c403f62

Choose a tag to compare

  • Allow to use enums / unions in nullable structs. The arrow format requires that each child field of a null struct value contains a dummy value. For union fields such dummy values were not supported before. With this release the following dummy values for unions are used:
    • For unions, the first variant is used as a dummy
    • For dictionary encoded strings, the first non-null value is used as a dummy value or an empty string if no values are encountered

Thanks

The following people contributed to this release:

  • @bartek358 discovered that unions in nullable structs are not supported and fixed the implementation in (#265)