store: Fast binary serialization

[ data, library, mit, serialization ] [ Propose Tags ]

[Skip to Readme]
Versions [faq] 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.1.0, 0.2.1.1, 0.2.1.2, 0.3, 0.3.1, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.3.1, 0.4.3.2, 0.5.0, 0.5.0.1, 0.5.1.0, 0.5.1.1, 0.5.1.2, 0.6.0, 0.6.0.1, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7 (info)
Change log ChangeLog.md
Dependencies array (>=0.5.0.0 && <0.6), base (==4.8.*), base-orphans (>=0.4.5 && <0.7), bytestring (>=0.10.4.0 && <0.11), conduit (>=1.2.3.1 && <1.3), containers (>=0.5.5.1 && <0.6), cryptohash (>=0.11.6 && <0.12), deepseq (>=1.3.0.2 && <1.5), fail (>=4.9.0.0 && <4.10), ghc-prim (>=0.3.1.0 && <0.6), hashable (>=1.2.3.1 && <1.3), hspec (>=2.1.2 && <2.5), hspec-smallcheck (>=0.3.0 && <0.5), integer-gmp (>=0.5.1.0 && <1.1), lifted-base (>=0.2.3.3 && <0.3), monad-control (>=0.3.3.0 && <1.1), mono-traversable (>=0.7.0 && <1.1), primitive (>=0.6 && <0.6.2), resourcet (>=1.1.3.3 && <1.2), safe (>=0.3.8 && <0.4), semigroups (>=0.8 && <0.19), smallcheck (>=1.1.1 && <1.2), syb (>=0.4.4 && <0.8), template-haskell (==2.10.*), text (>=1.2.0.4 && <1.3), th-lift (>=0.7.1 && <0.8), th-lift-instances (==0.1.*), th-orphans (>=0.13.1 && <0.14), th-reify-many (>=0.1.6 && <0.2), th-utilities (>=0.1.1.0 && <0.2), time (>=1.4.2 && <1.9), transformers (>=0.3.0.0 && <0.6), unordered-containers (>=0.2.5.1 && <0.3), vector (>=0.10.12.3 && <0.13), void (>=0.5.11 && <0.8) [details]
License MIT
Copyright 2016 FP Complete
Author
Maintainer Michael Sloan <sloan@fpcomplete.com>
Revised Revision 4 made by HerbertValerioRiedel at 2017-04-13T16:35:03Z
Category Serialization, Data
Home page https://github.com/fpco/store#readme
Bug tracker https://github.com/fpco/store/issues
Source repo head: git clone https://github.com/fpco/store
Uploaded by MichaelSloan at 2016-05-24T03:37:01Z
Distributions Arch:0.7.7, Debian:0.5.0.1, LTSHaskell:0.5.1.1, NixOS:0.7.7, Stackage:0.5.1.1
Downloads 22316 total (414 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-05-24 [all 1 reports]

Modules

[Index]

Flags

NameDescriptionDefaultType
comparison-benchDisabledManual
small-benchDisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for store-0.1.0.0

[back to package description]

store

The 'store' package provides binary serialization of Haskell datatypes. It fills quite a different niche from packages like 'binary' or 'cereal'. In particular:

  • Its primary goal is speed. Whenever possible, direct machine representations are used. For numeric types (Int, Double, Word32, etc) and types that use buffers (Text, ByteString, Vector, etc). This means that much of serialization uses the equivalent of memcpy.

  • By using machine representations, we lose serialization compatibility between different architectures. Store could in theory be used to describe machine-independent serialization formats. However, this is not the usecase it's currently designed for (though utilities might be added for this in the future!)

  • Store will not work at all on architectures which lack unaligned memory access (for example, older ARM processors). This is not a fundamental limitation, but we do not currently require ARM support.

See this blog post which describes the initial motivations and benchmarks that led to the existence of this package.