packages feed

hedis-0.7.2: hedis.cabal

name:               hedis
version:            0.7.2
synopsis:
    Client library for the Redis datastore: supports full command set,
    pipelining.
Description:
    Redis is an open source, advanced key-value store. It is often referred to
    as a data structure server since keys can contain strings, hashes, lists,
    sets and sorted sets. This library is a Haskell client for the Redis
    datastore. Compared to other Haskell client libraries it has some
    advantages:
    .
    [Complete Redis 2.6 command set:] All Redis commands
        (<http://redis.io/commands>) are available as haskell functions, except
        for the MONITOR and SYNC commands. Additionally, a low-level API is
        exposed that  makes it easy for the library user to implement further
        commands, such as new commands from an experimental Redis version.
    .
    [Automatic Optimal Pipelining:] Commands are pipelined
        (<http://redis.io/topics/pipelining>) as much as possible without any
        work by the user. See
        <http://informatikr.com/2012/redis-pipelining.html> for a
        technical explanation of automatic optimal pipelining.
    .
    [Enforced Pub\/Sub semantics:] When subscribed to the Redis Pub\/Sub server
        (<http://redis.io/topics/pubsub>), clients are not allowed to issue
        commands other than subscribing to or unsubscribing from channels. This
        library uses the type system to enforce the correct behavior.
    .
    [Connect via TCP or Unix Domain Socket:] TCP sockets are the default way to
        connect to a Redis server. For connections to a server on the same
        machine, Unix domain sockets offer higher performance than the standard
        TCP connection.
    .
    For detailed documentation, see the "Database.Redis" module.
    .
license:            BSD3
license-file:       LICENSE
author:             Falko Peters <falko.peters@gmail.com>
maintainer:         Kostiantyn Rybnikov <k-bx@k-bx.com>
copyright:          Copyright (c) 2011 Falko Peters
category:           Database
build-type:         Simple
cabal-version:      >=1.8
homepage:           https://github.com/informatikr/hedis
bug-reports:        https://github.com/informatikr/hedis/issues
extra-source-files: CHANGELOG

source-repository head
  type:     git
  location: https://github.com/informatikr/hedis

flag manual
  description: enable this for local development -Werror and profiling options
  default: False
  manual: True

library
  hs-source-dirs:   src
  ghc-options:      -Wall -fwarn-tabs
  if flag(manual)
    ghc-options:    -Werror
  if flag(manual)
    ghc-prof-options: -auto-all
  exposed-modules:  Database.Redis
  build-depends:    attoparsec >= 0.12,
                    base >= 4.6 && < 5,
                    bytestring >= 0.9,
                    bytestring-lexing >= 0.5,
                    deepseq,
                    mtl >= 2,
                    network >= 2,
                    resource-pool >= 0.2,
                    time,
                    vector >= 0.9

  other-modules:    Database.Redis.Core,
                    Database.Redis.ProtocolPipelining,
                    Database.Redis.Protocol,
                    Database.Redis.PubSub,
                    Database.Redis.Transactions,
                    Database.Redis.Types
                    Database.Redis.Commands,
                    Database.Redis.ManualCommands

benchmark hedis-benchmark
    type: exitcode-stdio-1.0
    main-is: benchmark/Benchmark.hs
    build-depends:
        base == 4.*,
        mtl >= 2.0,
        hedis,
        time >= 1.2
    ghc-options: -O2 -Wall -rtsopts
    if flag(manual)
      ghc-options: -Werror
    if flag(manual)
      ghc-prof-options: -auto-all

test-suite hedis-test
    type: exitcode-stdio-1.0
    main-is: test/Test.hs
    build-depends:
        base == 4.*,
        bytestring >= 0.10,
        hedis,
        HUnit,
        mtl == 2.*,
        slave-thread,
        test-framework,
        test-framework-hunit,
        time
    -- We use -O0 here, since GHC takes *very* long to compile so many constants
    ghc-options: -O0 -Wall -rtsopts -fno-warn-unused-do-bind
    if flag(manual)
      ghc-options: -Werror
    if flag(manual)
      ghc-prof-options: -auto-all