@hackage binary-typed0.3

Type-safe binary serialization

Binary serialization tagged with type information, allowing for typechecking and useful error messages at the receiving site.

This package serves the same purpose as tagged-binary, with a couple of key differences:

  • Support of different kinds of serialized type annotations, each with specific strengths and weaknesses.

  • Error messages can provide details on type errors at the cost of longer message lengths to include the necessary information.

  • Very small performance overhead compared to using standard Binary due to caching when using hashed type information. Since shown and full types are not cached, decoding them has a significant performance hit (ballpark: factor of two).

  • No depencency on Internal modules of other libraries, and a very small dependency footprint in general.

For information about usage, see the Data.Binary.Typed.Tutorial module.

Performance-wise, here is a value Right (Left <100 chars lipsum>) of type Either (Char, Int) (Either String (Maybe Integer)) benchmarked using the Hashed64 type representation:

(local copy)