binary-typed-0.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
Binarydue 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
Internalmodules 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:
