packages feed

hasql-0.5.0: hasql.cabal

name:
  hasql
version:
  0.5.0
synopsis:
  A minimalistic general high level API for relational databases
description:
  A robust and concise yet powerful API for communication with arbitrary
  relational databases using SQL.
  .
  Features:
  .
  * Concise and crisp API. Just a few functions and two monads doing all the
  boilerplate job for you.
  .
  * A powerful transaction abstraction, which provides 
  an automated resolution of conflicts.
  The API ensures that you're only able to perform a specific
  set of actions in the transaction context,
  which allows Hasql to safely resolve conflicting transactions 
  by automatically retrying them.
  This is much inspired by STM and ST.
  .
  * Support for cursors. Allows to fetch virtually limitless result sets in a
  constant memory using streaming.
  .
  * Employment of prepared statements. 
  Every statement you emit gets prepared and cached. 
  This raises the performance of the backend.
  .
  * Automated management of resources related to connections, transactions and
  cursors.
  .
  * A built-in connections pool.
  .
  * Compile-time generation of templates. You just can't write a statement with an
  incorrect number of placeholders.
  .
  * Ability to map to any types actually supported by the backend.
  .
  Links:
  .
  * <http://nikita-volkov.github.io/hasql-benchmarks/ Benchmarks analysis>.
  .
  * <https://github.com/nikita-volkov/hasql/blob/master/demo/Main.hs Basic tutorial-demo>.
  .
  * <http://hackage.haskell.org/package/hasql-postgres PostgreSQL backend>.
  .
category:
  Database
homepage:
  https://github.com/nikita-volkov/hasql 
bug-reports:
  https://github.com/nikita-volkov/hasql/issues 
author:
  Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer:
  Nikita Volkov <nikita.y.volkov@mail.ru>
copyright:
  (c) 2014, Nikita Volkov
license:
  MIT
license-file:
  LICENSE
build-type:
  Simple
cabal-version:
  >=1.10
extra-source-files:
  CHANGELOG.md


source-repository head
  type:
    git
  location:
    git://github.com/nikita-volkov/hasql.git


library
  hs-source-dirs:
    library
  ghc-options:
    -funbox-strict-fields
  default-extensions:
    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
  default-language:
    Haskell2010
  other-modules:
    Hasql.Prelude
    Hasql.QParser
    Hasql.RowParser
    Hasql.TH
  exposed-modules:
    Hasql
  build-depends:
    hasql-backend == 0.2.*,
    -- template-haskell:
    template-haskell >= 2.8 && < 2.10,
    -- parsing:
    attoparsec >= 0.10 && < 0.13,
    -- database:
    ex-pool == 0.2.*,
    -- data:
    vector < 0.11,
    time >= 1.4 && < 1.6,
    bytestring == 0.10.*,
    text >= 1.0 && < 1.3,
    -- errors:
    loch-th == 0.2.*,
    placeholders == 0.1.*,
    -- general:
    safe == 0.3.*,
    list-t >= 0.4 && < 0.5,
    mmorph == 1.0.*,
    monad-control == 1.0.*,
    transformers-base == 0.4.*,
    transformers >= 0.3 && < 0.5,
    base-prelude >= 0.1.3 && < 0.2,
    base >= 4.5 && < 4.8


test-suite hspec
  type:             
    exitcode-stdio-1.0
  hs-source-dirs:   
    hspec
  main-is:          
    Main.hs
  ghc-options:
    -threaded
    "-with-rtsopts=-N"
    -funbox-strict-fields
  default-extensions:
    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
  default-language:
    Haskell2010
  build-depends:
    -- 
    hasql,
    hasql-backend == 0.2.*,
    -- 
    hspec == 2.1.*,
    -- 
    mtl-prelude < 3,
    base-prelude,
    base


test-suite hspec-postgres
  type:
    exitcode-stdio-1.0
  hs-source-dirs:
    hspec-postgres
  main-is:
    Main.hs
  ghc-options:
    -threaded
    "-with-rtsopts=-N"
    -funbox-strict-fields
  default-extensions:
    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
  default-language:
    Haskell2010
  build-depends:
    -- 
    hasql,
    hasql-postgres == 0.9.*,
    -- 
    slave-thread == 0.1.*,
    -- 
    hspec == 2.1.*,
    -- 
    text,
    -- 
    mtl-prelude < 3,
    base-prelude,
    base


-- Well, it's not a benchmark actually, 
-- but in Cabal there's no better way to specify an executable, 
-- which is not intended for distribution.
benchmark demo
  type: 
    exitcode-stdio-1.0
  hs-source-dirs:
    demo
  main-is:
    Main.hs
  ghc-options:
    -O2
    -threaded
    "-with-rtsopts=-N"
    -funbox-strict-fields
  default-language:
    Haskell2010
  build-depends:
    hasql,
    hasql-postgres == 0.9.*,
    transformers >= 0.3 && < 0.5,
    base >= 4.5 && < 4.8