packages feed

fec-0.2.0: fec.cabal

cabal-version:      3.0
name:               fec
version:            0.2.0
license:            GPL-2.0-or-later
license-file:       README.rst
author:             Adam Langley <agl@imperialviolet.org>
maintainer:         Adam Langley <agl@imperialviolet.org>
description:
  This code, based on zfec by Zooko, based on code by Luigi
  Rizzo implements an erasure code, or forward error
  correction code. The most widely known example of an erasure
  code is the RAID-5 algorithm which makes it so that in the
  event of the loss of any one hard drive, the stored data can
  be completely recovered.  The algorithm in the zfec package
  has a similar effect, but instead of recovering from the loss
  of only a single element, it can be parameterized to choose in
  advance the number of elements whose loss it can tolerate.

build-type:         Simple
homepage:           https://github.com/tahoe-lafs/zfec
synopsis:           Forward error correction of ByteStrings
category:           Codec
stability:          provisional
tested-with:        GHC ==8.10.7
extra-source-files:
  COPYING.GPL
  COPYING.TGPPL.rst
  zfec/fec.h

extra-doc-files:    ChangeLog.md

library
  build-depends:
    , base        >=4.9  && <5
    , bytestring  >=0.10 && <0.13
    , deepseq     >=1.4  && <1.6
    , extra       >=1.7  && <1.8

  exposed-modules:    Codec.FEC
  default-language:   Haskell2010
  default-extensions: ForeignFunctionInterface
  hs-source-dirs:     haskell
  ghc-options:        -Wall
  c-sources:          zfec/fec.c
  cc-options:         -std=c99
  include-dirs:       zfec

executable benchmark-zfec
  main-is:          Main.hs
  ghc-options:      -threaded
  build-depends:
    , base        >=4.9  && <5
    , bytestring  >=0.10 && <0.13
    , criterion   >=1.1  && <1.7
    , fec
    , random      >=1.1  && <1.3

  hs-source-dirs:   benchmark-zfec
  default-language: Haskell2010

test-suite tests
  type:             exitcode-stdio-1.0
  main-is:          FECTest.hs
  other-modules:
  hs-source-dirs:   haskell/test
  ghc-options:      -Wall -threaded -rtsopts -with-rtsopts=-N
  build-depends:
    , base                  >=4.9  && <5
    , bytestring            >=0.10 && <0.13
    , data-serializer       >=0.3  && <0.4
    , fec
    , hspec                 >=2.7  && <2.12
    , QuickCheck            >=2.14 && <2.15
    , quickcheck-instances  >=0.3  && <0.4
    , random                >=1.1  && <1.3

  default-language: Haskell2010