<commit_before># avro4s

[![Build Status](https://travis-ci.org/sksamuel/avro4s.png)](https://travis-ci.org/sksamuel/avro4s)
[<img src="https://img.shields.io/maven-central/v/com.sksamuel.avro4s/avro4s-core_2.11.svg?label=latest%20release%20for%202.11"/>](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22avro4s-core_2.11%22)
[<img src="https://img.shields.io/maven-central/v/com.sksamuel.avro4s/avro4s-core_2.12.svg?label=latest%20release%20for%202.12"/>](http://search.maven.org/#search%7Cga%7C1%7Cavro4s-core_2.12)

Avro4s is a schema/class generation and serializing/deserializing library for [Avro](http://avro.apache.org/) written in Scala. The objective is to allow seamless use with Scala without the need to to write boilerplate conversions yourself, and without the runtime overhead of reflection. Hence, this is a macro based library and generates code for use with Avro at _compile time_.

The features of the library are:
* Schema generation from classes at compile time
* Class generation from schemas at build time
* Boilerplate free serialization of classes to Avro
* Boilerplate free deserialization of Avro to classes

## Changelog
* 1.6.4 - Added support for Vectors
* 1.6.3 - Fixed issue with decimal schema using strings instead of ints for scale and precision
* 1.6.2 - Removed unused imports, fixed compiler warnings
* 1.6.1 - Fixed bug when using Option with a default value of None. Updated sbt generator. Added better way to discrimate between tpyes (Ilya Epifanov). Optimized reflection lookup @simonsouter.
* 1.6.0 - Added support for Coproducts (see section on coproducts) @SohumB. Added support for value classes. Bumped 2.12 cross build to M4.
* 1.5.6 - Added support for setting scale and precision on BigDecimal @blbradley
* 1.5.5 - Skipped
* 1.5.4 - Added support for recursive types @SohumB
* 1.5.3 - Added support for Option[X] in default parameters @jecos
* 1.5.2 - Added support for ints, longs, booleans, doubles, arrays, enums and maps in default parameters @whazenberg
* 1.5.1 - Fixed macro bug introduced in 1.5.0 which broke macro generation.
* 1.5.0 - Upgraded to Avro 1.8.1. Deprecated factory methods in io classes in favour of more explicit naming. Added caching for the macro generation (thanks @jtvoorde).
* 1.4.3 - Added support for json serialization
* 1.4.1 - Added support for parameter defaults
* 1.4.0 - Added better support for enums. Added support for UUIDs. Rewrote the macro backend. Added better binary support.
* 1.3.3 - Added missing support for deserializing byte arrays
* 1.3.0 - Added support for Scala 2.12. Removed 2.10 cross build. Fixed issues with private vals. Added binary (no schema) output stream. Exposed RecordFormat[T] typeclass to enable easy conversion of T to/from an Avro Record.
* 1.2.0 - Added support for properties, doc fields, and aliases. These are set via annotations.
* 1.1.0 - Added JSON document to Avro schema converter
* 1.0.0 - Migrated all macros to use Shapeless. Fixed some trickier nested case class issues. Simplified API. Added support for java enums.
* 0.94.0 - Added support for writing/reading Either and Option in serializer/deserializer. Fixed bug with array serialization.
* 0.93.0 - Added support for either and options in schema generator. Added support for aliases via scala annotation.
* 0.92.0 - Added support for unions (and unions of nulls to Options) and enums to class generator.<commit_msg>Minor documentation help<commit_after># avro4s

[![Build Status](https://travis-ci.org/sksamuel/avro4s.png)](https://travis-ci.org/sksamuel/avro4s)
[<img src="https://img.shields.io/maven-central/v/com.sksamuel.avro4s/avro4s-core_2.11.svg?label=latest%20release%20for%202.11"/>](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22avro4s-core_2.11%22)
[<img src="https://img.shields.io/maven-central/v/com.sksamuel.avro4s/avro4s-core_2.12.svg?label=latest%20release%20for%202.12"/>](http://search.maven.org/#search%7Cga%7C1%7Cavro4s-core_2.12)

Avro4s is a schema/class generation and serializing/deserializing library for [Avro](http://avro.apache.org/) written in Scala. The objective is to allow seamless use with Scala without the need to to write boilerplate conversions yourself, and without the runtime overhead of reflection. Hence, this is a macro based library and generates code for use with Avro at _compile time_.

The features of the library are:
* Schema generation from classes at compile time
* Class generation from schemas at build time(through [sbt](https://github.com/sksamuel/sbt-avro4s))
* Boilerplate free serialization of classes to Avro
* Boilerplate free deserialization of Avro to classes

## Changelog
* 1.6.4 - Added support for Vectors
* 1.6.3 - Fixed issue with decimal schema using strings instead of ints for scale and precision
* 1.6.2 - Removed unused imports, fixed compiler warnings
* 1.6.1 - Fixed bug when using Option with a default value of None. Updated sbt generator. Added better way to discrimate between tpyes (<NAME>). Optimized reflection lookup @simonsouter.
* 1.6.0 - Added support for Coproducts (see section on coproducts) @SohumB. Added support for value classes. Bumped 2.12 cross build to M4.
* 1.5.6 - Added support for setting scale and precision on BigDecimal @blbradley
* 1.5.5 - Skipped
* 1.5.4 - Added support for recursive types @SohumB
* 1.5.3 - Added support for Option[X] in default parameters @jecos
* 1.5.2 - Added support for ints, longs, booleans, doubles, arrays, enums and maps in default parameters @whazenberg
* 1.5.1 - Fixed macro bug introduced in 1.5.0 which broke macro generation.
* 1.5.0 - Upgraded to Avro 1.8.1. Deprecated factory methods in io classes in favour of more explicit naming. Added caching for the macro generation (thanks @jtvoorde).
* 1.4.3 - Added support for json serialization
* 1.4.1 - Added support for parameter defaults
* 1.4.0 - Added better support for enums. Added support for UUIDs. Rewrote the macro backend. Added better binary support.
* 1.3.3 - Added missing support for deserializing byte arrays
* 1.3.0 - Added support for Scala 2.12. Removed 2.10 cross build. Fixed issues with private vals. Added binary (no schema) output stream. Exposed RecordFormat[T] typeclass to enable easy conversion of T to/from an Avro Record.
* 1.2.0 - Added support for properties, doc fields, and aliases. These are set via annotations.
* 1.1.0 - Added JSON document to Avro schema converter
* 1.0.0 - Migrated all macros to use Shapeless. Fixed some trickier nested case class issues. Simplified API. Added support for java enums.
* 0.94.0 - Added support for writing/reading Either and Option in serializer/deserializer. Fixed bug with array serialization.
* 0.93.0 - Added support for either and options in schema generator. Added support for aliases via scala annotation.
* 0.92.0 - Added support for unions (and unions of nulls to Options) and enums to class generator.
{'fraction_non_alphanumeric': 0.09035355739851593, 'fraction_numerical': 0.04117561472428343, 'mean_word_length': 4.243325705568268, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 9, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2030450', 'n_tokens_mistral': 2323, 'n_tokens_neox': 2112, 'n_words': 837}