Releases: chmp/serde_arrow
Releases · chmp/serde_arrow
0.14.1
- 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
Listarrays
0.14.0
- Add
arrow=58support - Performance improvements:
- Avoid unnecessary allocations in serialization
- Reserve elements up front
- Breaking change: refactored error handling
- Turn
Errorinto a struct - Expand
ErrorKindwith the variantsMissingField,NullabilityViolation - Remove
Error::customin favor ofError::new - Remove
Error::custom_fromin favor ofError::new_from
- Turn
- 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::Serializerinstead of a custom trait.
0.14.0-rc.1
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_marrowthat avoid additional allocations for metadata
0.13.7
0.13.6
- @jpopesculian added the option
bytes_as_large_binarytoTracingOptions(#282) - @jpopesculian added support to serialize strings as bytes (#281)
0.13.5
0.13.4
0.13.3
0.13.2
- Add
arrow=55support - Allow primitive to string conversion (#272)
- Adds the option
allow_to_stringtoTracerOptionsto allow numbers, booleans and chars to coerce to strings (falseby default) - Allows for numbers, booleans and chars to be serialized to strings
- Adds the option
Thanks
The following people contributed to this release:
- @jpopesculian added support for serializing primitives to string (#272)
0.13.1
- 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)