- Support for encoding and decoding Decimals
- Incorrect error for decimal encoding
- String.slice deprecation warning
- Support for tagged unions in named fields
AvroEx.encode/3
supports a:include_block_byte_size
option for encoding block size
- Allow empty strings as namespaces
- Fix
encodeable?
checks for int and float - Set time values to proper precision on decoding
- Fixed reference type name generation
- Fixed bug where Array and Map children of Unions would fail to parse
AvroEx.encode/2
now returns{:error, AvroEx.EncodeError.t()}
in the case of an error- Primitive integer types now represented as
%Primitive{type: :int}
instead of%Primitive{type: :integer}
- Primitive null types now represented as
%Primitive{type: :null}
instead of%Primitive{type: nil}
- Schema decoding now supports directly passing Elixir terms, will strictly validate the schema, and produce helpful error messages
- Removed
Ecto
as a dependency AvroEx.Schema.full_name/2
- reverses the order of the arguments, accepting a Schema type or name, followed by the namespace
AvroEx.encode!/2
- identical toencode/2
, but returns raw value. Raises on errorAvroEx.decode!/2
- identical todecode/2
, but returns raw value. Raises on errorAvroEx.decode_schema/1
andAvroEx.decode_schema!/
in place ofAvroEx.parse_schema/1
- Support for encoding and decoding
date
logical times to and fromDate.t()
- Schema decoding adds a
:strict
option that will strictly validate the schema for unrecognized fields AvroEx.encode_schema/2
- encode aAvroEx.Schema.t()
back to JSON. Supports encoding the schema to Parsing Canonical FormAvroEx.Schema.namespace/2
- Returns the namespace of the given Schema type
AvroEx.parse_schema/1
AvroEx.parse_schema!/1
AvroEx.named_type!/2
- Fix exception when encoding bad Record data
- Address dialyzer issues
- Add type for AvroEx.Schema.Record.Field to fix compilation error
- Fix long encoding
- Fix variable integer and long decoding
- Support encoding DateTime and Time to logical types in Union
- Records can accept atoms for encoding keys
- String values can accept atoms for encoding
- Enums can accept atoms for encoding
- Simplify integer and long encoding