This repo contains two libraries (plus associated tools):
The serialise
library is for serialising Haskell values and deserialising
them later.
The cborg
library provides a fast, standards-compliant implementation of the
'Concise Binary Object Representation' (specified in RFC 7049
) for Haskell.
The serialise
library uses the CBOR format, via the cborg
library, which
gives it the following benefits:
- fast serialisation and deserialisation
- compact binary format
- stable format across platforms (32/64bit, big/little endian)
- support for backwards compatible deserialisation with migrations
- the ability to inspect binary values with generic tools, e.g. for debugging or recovery, including generic conversion into JSON text
- potential to read the serialised format from other languages
- incremental or streaming (de)serialisation
- internal message framing (for use in network application)
- suitable to use with untrusted input (resistance to asymmetric resource consumption attacks)
They are just a cabal install
away on Hackage, or through Stackage:
$ cabal install cborg serialise
$ stack install cborg serialise
There are also a few related packages that you may be interested in:
cborg-json
implements the bijection between JSON and CBOR specified in the RFC.cbor-tool
is a handy command-line utility for working with CBOR data.
Be sure to read the contributing guidelines. File bugs in the GitHub issue tracker.
Master git repository:
git clone https://github.com/well-typed/cborg.git
The tests for the cborg
package are currently included in the serialise
package.
$ cabal test serialise
$ stack test serialise
Note: the stack.yaml
file is currently synchronized to LTS-8.13. Further
compilers and other LTS releases are currently not supported with Stack at the
moment, but the build is tested with older compilers and Cabal libraries
(through Travis CI).
See AUTHORS.txt.
BSD3. See LICENSE.txt for the exact terms of copyright and redistribution.