Unified serialization with semi-automatic documentation
SerDoc provides:
- A unified interface for serialization formats ("codecs"), in the form of a 'Serializable' typeclass.
- A mini-EDSL (FieldInfo) for describing serialization formats as first-class data structures, and a typeclass (HasInfo) to link them to codecs and serializable Haskell types.
- Building blocks and utility code for implementing Codec,Serializable, andHasInfofor existing or new serialization formats.
It also includes an implementation of these typeclasses for the binary
package.
SerDoc is split up into two sub-projects:
- serdoc-core, which provides the typeclasses and building blocks
- serdoc-binary, which provides instances for- binary
See their individual README.md files for details.