hasql/hasql.cabal
2014-12-27 06:17:24 +03:00

205 lines
5.8 KiB
Plaintext

name:
hasql
version:
0.6.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 one monad 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 connection 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:
--
resource-pool == 0.2.*,
hasql-backend == 0.3.*,
--
template-haskell >= 2.8 && < 2.10,
--
attoparsec >= 0.10 && < 0.13,
--
vector < 0.11,
text >= 1.0 && < 1.3,
--
either >= 4.3 && < 4.4,
list-t >= 0.3.1 && < 0.5,
mmorph == 1.0.*,
mtl >= 2.1 && < 2.3,
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,
--
hspec == 2.1.*,
--
vector,
--
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.10.*,
--
slave-thread == 0.1.*,
--
hspec == 2.1.*,
--
text,
--
monad-control,
either,
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.10.*,
transformers >= 0.3 && < 0.5,
base >= 4.5 && < 4.8