{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:hackage/store","name":"store","description":"\n\n[Last Documentation]\n\nUse the simple integer library instead of integer-gmp\n\nUse -f \u003cflag\u003e to enable a flag, or -f -\u003cflag\u003e to disable that flag. More info\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates\n\n\n\nThe 'store' package provides efficient binary serialization. There are\na couple features that particularly distinguish it from most prior\nHaskell serialization libraries:\n\nIts primary goal is speed. By default, direct machine\nrepresentations are used for things like numeric values (Int,\nDouble, Word32, etc) and buffers (Text, ByteString,\nVector, etc). This means that much of serialization uses the\nequivalent of memcpy.\n\nWe have plans for supporting architecture independent\nserialization - see #36\nand #31. This plan makes\nlittle endian the default, so that the most common endianness has no\noverhead.\n\nInstead of implementing lazy serialization / deserialization\ninvolving multiple input / output buffers, peek and poke always\nwork with a single buffer. This buffer is allocated by asking the\nvalue for its size before encoding. This simplifies the encoding\nlogic, and allows for highly optimized tight loops.\n\nstore can optimize size computations by knowing when some types\nalways use the same number of bytes.  This allows us to compute the\nbyte size of a Vector Int32 by just doing length v * 4.\n\nIt also features:\n\nOptimized serialization instances for many types from base, vector,\nbytestring, text, containers, time, template-haskell, and more.\n\nTH and GHC Generics based generation of Store instances for\ndatatypes.\n\nTH generation of testcases.\n\nUtilities for streaming encoding / decoding of Store encoded\nmessages, via the store-streaming package.\n\nStore is best used for communication between trusted processes and\nlocal caches.  It can certainly be used for other purposes, but the\nbuiltin set of instances have some gotchas to be aware of:\n\nStore's builtin instances serialize in a format which depends on\nmachine endianness.\n\nStore's builtin instances trust the data when deserializing. For\nexample, the deserialization of Vector will read the vector's\nlength from the first 8 bytes. It will then allocate enough memory\nto store all the elements. Malicious or malformed input could cause\nallocation of large amounts of memory.  See issue #122.\n\nSerialization may vary based on the version of datatypes. For\nexample, Text serialized from text \u003c 2 will not be compatible\nwith Text from text \u003e= 2, because the internal representation\nswitched from UTF-16 to UTF-8.","version":"0.7.22","softwareVersion":"0.7.22","license":"https://spdx.org/licenses/MIT","codeRepository":"https://github.com/mgsloan/store","issueTracker":"https://github.com/mgsloan/store/issues","url":"https://github.com/mgsloan/store#readme","keywords":["data","library","mit","serialization","Propose Tags"],"programmingLanguage":{"@type":"ComputerLanguage","name":"Haskell"},"maintainer":[{"@type":"Person","name":"MichaelSnoyman"},{"@type":"Person","name":"borsboom"},{"@type":"Person","name":"fpcomplete"},{"@type":"Person","name":"MichaelSloan"},{"@type":"Person","name":"philipp"}],"author":[{"@type":"Person","name":"MichaelSnoyman"},{"@type":"Person","name":"borsboom"},{"@type":"Person","name":"fpcomplete"},{"@type":"Person","name":"MichaelSloan"},{"@type":"Person","name":"philipp"}],"copyrightHolder":[{"@type":"Person","name":"MichaelSnoyman"},{"@type":"Person","name":"borsboom"},{"@type":"Person","name":"fpcomplete"},{"@type":"Person","name":"MichaelSloan"},{"@type":"Person","name":"philipp"}],"dateCreated":"2016-05-24","dateModified":"2026-06-10","datePublished":"2026-06-10","copyrightYear":2016,"downloadUrl":"https://hackage.haskell.org/package/store-0.7.22/store-0.7.22.tar.gz","applicationCategory":"hackage","runtimePlatform":"hackage","developmentStatus":"active","sameAs":["https://hackage.haskell.org/package/store"],"https://www.w3.org/ns/activitystreams#likes":108,"https://forgefed.org/ns#forks":35}