packages feed

tahoe-great-black-swamp-0.3.0.1: tahoe-great-black-swamp.cabal

cabal-version:      2.4
name:               tahoe-great-black-swamp
version:            0.3.0.1
build-type:         Simple
synopsis:           An implementation of the "Great Black Swamp" LAFS protocol.
description:
  This package implements the recently proposed "Great Black Swamp" Least
  Authority File Store protocol from the Tahoe-LAFS project.  It also includes
  pieces of a storage server and client implementation based on that protocol.

license:            BSD-3-Clause
license-file:       LICENSE
author:             Jean-Paul Calderone and others
maintainer:         exarkun@twistedmatrix.com
copyright:          2018-2023 The Authors
category:
  Cryptography
  , Distributed Computing
  , Filesystem
  , Network
  , Network APIs
  , Security
  , Service
  , Storage
  , Web

extra-source-files:
  ChangeLog.md
  README.rst

homepage:
  https://whetstone.private.storage/PrivateStorage/tahoe-great-black-swamp

bug-reports:
  https://whetstone.private.storage/privatestorage/tahoe-great-black-swamp/-/issues

source-repository head
  type:     git
  location:
    gitlab@whetstone.private.storage:privatestorage/tahoe-great-black-swamp.git

common executable-opts
  ghc-options: -threaded -rtsopts -with-rtsopts=-N

common common-opts
  default-extensions:
    GADTs
    InstanceSigs
    LambdaCase
    MultiWayIf
    NamedFieldPuns
    OverloadedStrings
    RecordWildCards
    ScopedTypeVariables
    StrictData
    TupleSections
    TypeApplications

  ghc-options:        -Wall
  build-depends:
    , aeson                 >=1.4.7    && <2.2
    , async                 >=2.2.2    && <2.3
    , base                  >=4.7      && <5
    , binary                >=0.8.6    && <0.9
    , bytestring            >=0.10.8.2 && <0.11
    , containers            >=0.6.0.1  && <0.7
    , deriving-aeson        >=0.2.6    && <0.3
    , directory             >=1.3.3    && <1.4
    , filepath              >=1.4.2    && <1.5
    , foldl                 >=1.4.6    && <1.5
    , http-types            >=0.12.3   && <0.13
    , primitive             >=0.7.0.1  && <0.8
    , safe-exceptions       >=0.1.7.1  && <0.2
    , text                  >=1.2.3.1  && <1.3
    , unordered-containers  >=0.2.10   && <0.3
    , vector                >=0.12.1.2 && <0.13

  default-language:   Haskell2010

library
  import:           common-opts
  hs-source-dirs:   src
  exposed-modules:
    TahoeLAFS.Storage.API
    TahoeLAFS.Storage.APIDocs
    TahoeLAFS.Storage.Backend
    TahoeLAFS.Storage.Backend.Filesystem
    TahoeLAFS.Storage.Backend.Memory
    TahoeLAFS.Storage.Backend.Null
    TahoeLAFS.Storage.Client
    TahoeLAFS.Storage.Server

  other-modules:    TahoeLAFS.Internal.ServantUtil
  default-language: Haskell2010
  build-depends:
    , base               >=4.7      && <5
    , base64-bytestring  >=1.0.0.3  && <1.3
    , cborg              >=0.2.4    && <0.3
    , cborg-json         >=0.2.2    && <0.3
    , http-api-data      >=0.4.1.1  && <0.7
    , http-media         >=0.8      && <0.9
    , scientific         >=0.3.6.2  && <0.4
    , serialise          >=0.2.3    && <0.3
    , servant-client     >=0.16.0.1 && <0.21
    , servant-docs       >=0.11.4   && <0.14
    , servant-server     >=0.16.2   && <0.21
    , utf8-string        >=1.0.1.1  && <1.1
    , wai                >=3.2.2.1  && <3.3
    , warp               >=3.3.13   && <3.4
    , warp-tls           >=3.2.12   && <3.5

-- executable gbs-generate-apidocs
--   hs-source-dirs:      generate-apidocs
--   main-is:             Main.hs
--   default-language:    Haskell2010
--   build-depends:       base
--                      , servant-docs
--                      , pandoc
--                      , data-default
--                      , blaze-html
--                      , tahoe-great-black-swamp
--                      , text

executable client-test
  import:           common-opts
  hs-source-dirs:   client-test
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , aeson                    >=1.4.7    && <2.2
    , base                     >=4.7      && <5
    , base32                   >=0.2.1    && <0.3
    , base64-bytestring        >=1.0.0.3  && <1.3
    , bytestring               >=0.10.8.2 && <0.11
    , cborg                    >=0.2.4    && <0.3
    , connection               >=0.3.1    && <0.4
    , containers               >=0.6.0.1  && <0.7
    , http-client              >=0.6.4.1  && <0.8
    , http-client-tls          >=0.3.5.3  && <0.4
    , http-types               >=0.12.3   && <0.13
    , megaparsec               >=8.0      && <9.3
    , network-uri              >=2.6.3    && <2.7
    , serialise                >=0.2.3    && <0.3
    , servant                  >=0.16.2   && <0.21
    , servant-client           >=0.16.0.1 && <0.21
    , tahoe-chk                >=0.1      && <0.2
    , tahoe-great-black-swamp
    , text                     >=1.2.3.1  && <1.3

executable gbs-lafs-storage-server
  hs-source-dirs:   app
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , base                     >=4.7      && <5
    , optparse-applicative     >=0.15.1.0 && <0.19
    , tahoe-great-black-swamp
    , warp                     >=3.3.13   && <3.4

executable gbs-generate-clients
  hs-source-dirs:   generate-clients
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , base                     >=4.7     && <5
    , filepath                 >=1.4.2   && <1.5
    , servant-js               >=0.9.4.2 && <0.10
    , tahoe-great-black-swamp

test-suite http-tests
  import:           common-opts
  import:           executable-opts
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Main.hs
  other-modules:
    CBORSpec
    HTTPSpec
    Lib
    MiscSpec
    SemanticSpec
    Spec

  default-language: Haskell2010
  ghc-options:      -Wall
  build-depends:
    , base                     >=4.7      && <5
    , base32string             >=0.9.1    && <0.10
    , cborg                    >=0.2.4    && <0.3
    , hspec                    <2.12
    , hspec-expectations       <0.9
    , hspec-wai                <0.12
    , QuickCheck               <2.15
    , quickcheck-instances     <0.4
    , serialise                >=0.2.3    && <0.3
    , servant                  >=0.16.2   && <0.21
    , tahoe-great-black-swamp
    , temporary                >=1.3      && <1.4
    , vector                   >=0.12.1.2 && <0.13
    , wai-extra                >=3.0.29.2 && <3.2