Skip to content

4.0.0

Compare
Choose a tag to compare
@dstelljes dstelljes released this 21 Jan 21:03

This major release brings significant performance improvements and simplifies some of the code used to build serializers and deserializers. Most applications should be able to upgrade from 3.x versions without making any additional changes.

Breaking changes

  • The BinaryDeserializer<T> and BinarySerializer<T> classes have been removed from the public API (#58).

  • Case interfaces no longer rely on exceptions to control flow (#53). That (regrettable) change, introduced in 3.0.0, made debugging intolerably slow (#41) and has now been reversed.

  • The codec interfaces and the case interfaces used by the serde builders have been altered to support more efficient expression generation (#58). The binary serde builder interfaces have also changed slightly—BuildDelegate methods no longer include the optional cache parameter.

Bug fixes

  • Prior to 4.0.0, some CLI validation errors caused unhandled exceptions. With this release, all validation errors should be handled consistently.

New features

  • Chr.Avro now supports serializing and deserializing ArraySegment<T> as well as all generic collection types in System.Collections.Generic and System.Collections.Immutable (#59, h/t @kingwill27; #64). See the mapping documentation for more details.

  • dotnet avro generate now supports reading schemas from standard input (#62). The documentation includes Bash and PowerShell examples.