Skip to content

Commit

Permalink
Add thanks
Browse files Browse the repository at this point in the history
  • Loading branch information
HuwCampbell committed Sep 30, 2024
1 parent 29b061e commit f04a741
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ is not fancy.
But it is:

- Efficient,
- Correct, and
- Highly conformant, and
- Easy to use.


Expand Down Expand Up @@ -61,4 +61,27 @@ encoder =
decoder :: Schema -> Either SchemaMismatch (Get Person)
decoder writerSchema =
Avro.makeDecoder personCodec writerSchema
```
```


Acknowledgements and Alternatives
---------------------------------

While this code is derived from our Elm library, we would like to thank Haskell Works for
their [Avro library](https://github.com/haskell-works/avro), which inspires parts of the
implementation and clarified a number of points. It is an alternative well worth considering
for parsing Avro data in Haskell.

The main differences between this library and that are:

- Haskell Works' Avro library prefers type classes over values for encoders and decoders;
- It favours code generation using Template Haskell over writing decoders and encoders; and
- It doesn't have anything like our `Codec` type.

You should consider our library if:

- You are happy to write your own model types and codecs (which in turn generate schemas);
- You want to dynamically generate Avro data of unknown shape in your program (types defined
by your users); or
- You are happy with a smaller library with fewer features but greater test coverage and
excellent adherence to the Avro specification.

0 comments on commit f04a741

Please sign in to comment.