packages feed

network-transport-zeromq-0.2.1: network-transport-zeromq.cabal

name:                network-transport-zeromq
version:             0.2.1
synopsis:            ZeroMQ backend for network-transport
description:
  Implementation of the
  <http://hackage.haskell.org/package/network-transport
  network-transport> API over ZeroMQ. This provides access to the
  wealth of transports implemented in ZeroMQ, such as in-process,
  inter-process, TCP, TPIC and multicast. Furthermore, this makes it
  possible to encrypt and authenticate clients using ZeroMQ's security
  mechanisms, and increase throughput using ZeroMQ's intelligent
  message batching.
license:             BSD3
license-file:        LICENSE
copyright:           (c) 2014-2015, EURL Tweag
author:              Tweag I/O
maintainer:          Alexander Vershilov <alexander.vershilov@tweag.io>
category:            Network
build-type:          Simple
cabal-version:       >=1.10
homepage:            https://github.com/tweag/network-transport-zeromq
bug-reports:         https://github.com/tweag/network-transport-zeromq/issues

Extra-Source-Files:
  ChangeLog.md

Source-repository head
  Type: git
  Location: https://github.com/tweag/network-transport-zeromq


flag install-benchmarks
  description:
    Build and install extra benchmarks executables (default benchmarks
    will be built, but not installed, using \-\-enable-benchmarks).
  default:     False

flag distributed-process-tests
  description: Build test suites that require distributed-process to be installed.
  default:     False

library
  build-depends:      base >=4.6 && < 4.8,
                      binary >= 0.6,
                      network-transport >= 0.4,
                      zeromq4-haskell >= 0.6,
                      async >= 2.0,
                      stm >= 2.4,
                      stm-chans >= 0.3,
                      containers >= 0.5,
                      bytestring >= 0.10,
                      transformers >= 0.3,
                      semigroups >= 0.12,
                      exceptions >= 0.3,
                      random >= 1.0,
                      data-accessor >= 0.2
  exposed-modules:    Network.Transport.ZMQ
                      Network.Transport.ZMQ.Internal
                      Network.Transport.ZMQ.Internal.Types
  hs-source-dirs:     src
  ghc-options:        -Wall
  default-extensions: DeriveGeneric
                      DeriveDataTypeable
                      OverloadedStrings
                      LambdaCase
                      ScopedTypeVariables
                      StandaloneDeriving
  other-extensions:   CPP
  default-language:   Haskell2010

Test-Suite test-zeromq
  type:               exitcode-stdio-1.0
  main-is:            TestZMQ.hs
  build-depends:      base >= 4.4 && < 5,
                      network-transport >= 0.4,
                      network-transport-zeromq,
                      zeromq4-haskell >= 0.2,
                      network-transport-tests >= 0.1.0.1
  ghc-options:        -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  hs-source-dirs:     tests
  default-language:   Haskell2010

Test-Suite test-api
  type:               exitcode-stdio-1.0
  main-is:            TestAPI.hs
  build-depends:      base >= 4.4 && < 5,
                      network-transport >= 0.4,
                      network-transport-zeromq,
                      zeromq4-haskell >= 0.2,
                      tasty >= 0.6,
                      tasty-hunit >= 0.6
  ghc-options:        -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  hs-source-dirs:     tests
  default-language:   Haskell2010

Test-Suite test-ch-core
  Type:               exitcode-stdio-1.0
  Main-Is:            test-ch.hs
  CPP-Options:        -DTEST_SUITE_MODULE=Control.Distributed.Process.Tests.CH
  default-extensions:         CPP
  ghc-options:        -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  HS-Source-Dirs:     tests
  default-language:   Haskell2010
  Build-Depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      distributed-process-tests >= 0.4,
                      network >= 2.3,
                      network-transport >= 0.3,
                      test-framework >= 0.6 && < 0.9,
                      containers,
                      stm,
                      stm-chans,
                      bytestring
  if !flag(distributed-process-tests)
    Buildable: False

Test-Suite test-ch-closure
  Type:               exitcode-stdio-1.0
  Main-Is:            test-ch.hs
  CPP-Options:        -DTEST_SUITE_MODULE=Control.Distributed.Process.Tests.Closure
  default-extensions: CPP
  ghc-options:        -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -caf-all -auto-all
  HS-Source-Dirs:     tests
  default-language:   Haskell2010
  Build-Depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      distributed-process-tests >= 0.4,
                      network >= 2.3,
                      network-transport >= 0.3,
                      test-framework >= 0.6 && < 0.9,
                      containers,
                      stm,
                      stm-chans,
                      bytestring
  if !flag(distributed-process-tests)
    Buildable: False

Test-Suite test-ch-stat
  Type:               exitcode-stdio-1.0
  Main-Is:            test-ch.hs
  CPP-Options:        -DTEST_SUITE_MODULE=Control.Distributed.Process.Tests.Stats
  default-extensions: CPP
  ghc-options:        -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  HS-Source-Dirs:     tests
  default-language:   Haskell2010
  Build-Depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      distributed-process-tests >= 0.4,
                      network >= 2.3,
                      network-transport >= 0.3,
                      test-framework >= 0.6 && < 0.9,
                      containers,
                      stm,
                      stm-chans,
                      bytestring
  if !flag(distributed-process-tests)
    Buildable: False

benchmark bench-channels-local
  type:               exitcode-stdio-1.0
  main-is:            Channels.hs
  build-depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      bytestring,
                      binary,
                      distributed-process,
                      criterion >= 1.0
  hs-source-dirs:     benchmarks
  ghc-options:        -O2 -Wall -threaded
  default-language:   Haskell2010

benchmark bench-latency-local
  type:               exitcode-stdio-1.0
  main-is:            Latency.hs
  build-depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      bytestring,
                      binary,
                      distributed-process,
                      criterion >= 1.0
  hs-source-dirs:     benchmarks
  ghc-options:        -O2 -Wall -threaded
  default-language:   Haskell2010

benchmark bench-throughput-local
  type:               exitcode-stdio-1.0
  main-is:            Throughput.hs
  build-depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      bytestring,
                      binary,
                      distributed-process,
                      criterion >= 1.0
  hs-source-dirs:     benchmarks
  ghc-options:        -O2 -Wall -threaded
  default-language:   Haskell2010
  default-extensions: BangPatterns

-- Installable benchmark executables, so as to allow passing arguments
-- to the benchmarks on the command line and hence run more complex
-- benchmarks over several hosts.

executable bench-dp-latency
  main-is:            Latency.hs
  hs-source-dirs:     benchmarks
  build-depends:      base >= 4.4 && < 5,
                      network-transport-zeromq,
                      bytestring,
                      binary,
                      criterion >= 1.0,
                      distributed-process
  default-language:   Haskell2010
  ghc-options:        -O2 -Wall
  if !flag(install-benchmarks)
    buildable: False

executable bench-dp-throughput
  main-is:            Throughput.hs
  hs-source-dirs:     benchmarks
  build-depends:      base >= 4.4 && < 5,
                      distributed-process,
                      network-transport-zeromq,
                      bytestring >= 0.9 && < 0.11,
                      criterion >= 1.0,
                      binary >= 0.5 && < 0.8
  default-language:   Haskell2010
  default-extensions: BangPatterns
  ghc-options:        -Wall
  if !flag(install-benchmarks)
    buildable: False

executable bench-dp-channels
  main-is:            Channels.hs
  hs-source-dirs:     benchmarks
  build-depends:      base >= 4.4 && < 5,
                      distributed-process,
                      network-transport-zeromq,
                      bytestring >= 0.9 && < 0.11,
                      criterion >= 1.0,
                      binary >= 0.5 && < 0.8
  default-language:   Haskell2010
  default-extensions: BangPatterns
  ghc-options:        -Wall -O2 -Wall -threaded
  if !flag(install-benchmarks)
    buildable: False