zstd: Haskell bindings to the Zstandard compression algorithm

[ bsd3, codec, library ] [ Propose Tags ]

A fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios.

[Skip to Readme]


Automatic Flags

Use a built-in copy of the zstd library


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


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,
Change log ChangeLog
Dependencies base (>=4.8 && <5), bytestring (>=0.9), deepseq, ghc-prim [details]
License BSD-3-Clause
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.; 2019 Luis Pedro Coelho
Author Bryan O'Sullivan
Maintainer luis@luispedro.org
Category Codec
Home page https://github.com/luispedro/hs-zstd
Bug tracker https://github.com/luispedro/hs-zstd/issues
Source repo head: git clone https://github.com/luispedro/hs-zstd
Uploaded by luispedro at 2021-09-27T05:45:14Z
Distributions LTSHaskell:, NixOS:, Stackage:
Reverse Dependencies 8 direct, 20 indirect [details]
Downloads 5117 total (68 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-09-27 [all 1 reports]

Readme for zstd-

[back to package description]

Zstandard bindings for Haskell


This library provides Haskell bindings to the Zstandard compression library.

Note that is now the official repositoryc for the zstd Haskell package. The original authors (Facebook) are no longer interested in maintaining it.

The library is structured to provide several layers of abstraction.

  • For the simplest use cases, the top-level Zstd module is the best place to get started.

  • If you need to stream a large amount of data with a constant memory footprint, use the Zstd.Streaming module. See also the conduit-zstd package which provides a very thin wrapper to integrate with the conduit library. If you need to use lazy bytestrings instead, see the Zstd.Lazy module. This is built using the abstractions from the Zstd.Streaming module.

  • When your usage is dominated by lots of small messages (presumably using pre-computed compression dictionaries), use the Zstd.Efficient module to amortize the cost of allocating and initializing context and dictionary values.

Join in

If you'd like to help improve the code, please read the contribution guidelines. This discusses how to file bugs and submit changes to the code itself.

API documentation

The APIs should be easy to understand and work with, and you can find documentation on Hackage.