tagged-binary: Provides tools for serializing data tagged with type information.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.


Very minimal library providing tools for serializing and decoding data into ByteString tagged with information about its type, inspired by Cloud Haskell and distributed-process.

Intended for use by libraries and frameworks in distributed contexts, such as distributed computation between native servers and communication between native servers and ghcjs/various front-ends, for behavior similar to the polymorphic communication channels of Cloud Haskell and distributed-process; servers can send tagged data, and clients can choose to selectively accept, ignore or queue incoming messages depending on their types.

For basic encoding, decoding and categorization, only Data.Binary.Tagged should be necessary. Data.Binary.Tagged.Internal is exported in case you need it.

Quick example:

> let x = encodeTagged (1 :: Int)
> decodeTagged x :: Maybe Bool
> decodeTagged x :: Maybe Int
Just 1


Change logNone available
Dependenciesbase (>=4.6 && <5), binary (>= && <0.8), bytestring (>= && <0.11), data-default (>=0.5.3 && <0.6), spoon (>=0.3.1 && <0.4) [details]
CopyrightCopyright (c) Justin Le 2014
AuthorJustin Le <justin@jle.im>
MaintainerJustin Le <justin@jle.im>
CategoryData, Serialization
Source repositoryhead: git clone https://github.com/mstksg/tagged-binary
UploadedWed Mar 12 19:08:26 UTC 2014 by jle




Maintainers' corner

For package maintainers and hackage trustees