2014-08-03 17:48:18 +04:00
|
|
|
name:
|
2014-10-18 00:03:02 +04:00
|
|
|
hasql
|
2014-08-03 17:48:18 +04:00
|
|
|
version:
|
2014-12-27 03:29:36 +03:00
|
|
|
0.6.0
|
2014-08-03 17:48:18 +04:00
|
|
|
synopsis:
|
2014-10-12 18:00:14 +04:00
|
|
|
A minimalistic general high level API for relational databases
|
2014-08-03 17:48:18 +04:00
|
|
|
description:
|
2014-10-24 01:21:44 +04:00
|
|
|
A robust and concise yet powerful API for communication with arbitrary
|
2014-11-11 15:18:07 +03:00
|
|
|
relational databases using SQL.
|
2014-10-28 15:02:44 +03:00
|
|
|
.
|
2014-10-28 15:36:54 +03:00
|
|
|
Features:
|
2014-10-24 01:21:44 +04:00
|
|
|
.
|
2014-12-28 04:27:17 +03:00
|
|
|
* Concise and crisp API. Just a few functions and two monads doing all the
|
2014-10-24 01:21:44 +04:00
|
|
|
boilerplate job for you.
|
|
|
|
.
|
2014-10-28 15:02:44 +03:00
|
|
|
* 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.
|
|
|
|
.
|
2014-10-24 01:21:44 +04:00
|
|
|
* Automated management of resources related to connections, transactions and
|
|
|
|
cursors.
|
|
|
|
.
|
2014-12-27 03:29:36 +03:00
|
|
|
* A built-in connection pool.
|
2014-10-24 01:21:44 +04:00
|
|
|
.
|
2014-11-13 17:08:32 +03:00
|
|
|
* Compile-time generation of templates. You just can't write a statement with an
|
2014-10-24 01:21:44 +04:00
|
|
|
incorrect number of placeholders.
|
|
|
|
.
|
2014-11-13 17:08:32 +03:00
|
|
|
* Ability to map to any types actually supported by the backend.
|
2014-10-28 15:02:44 +03:00
|
|
|
.
|
2014-10-28 15:36:54 +03:00
|
|
|
Links:
|
2014-10-28 15:02:44 +03:00
|
|
|
.
|
2014-11-10 13:49:38 +03:00
|
|
|
* <http://nikita-volkov.github.io/hasql-benchmarks/ Benchmarks analysis>.
|
|
|
|
.
|
2014-11-18 12:00:01 +03:00
|
|
|
* <https://github.com/nikita-volkov/hasql/blob/master/demo/Main.hs Basic tutorial-demo>.
|
2014-10-28 15:02:44 +03:00
|
|
|
.
|
2014-11-10 13:52:05 +03:00
|
|
|
* <http://hackage.haskell.org/package/hasql-postgres PostgreSQL backend>.
|
2014-10-28 15:02:44 +03:00
|
|
|
.
|
2014-08-03 17:48:18 +04:00
|
|
|
category:
|
2014-08-03 20:15:33 +04:00
|
|
|
Database
|
2014-08-03 17:48:18 +04:00
|
|
|
homepage:
|
2014-10-18 00:03:02 +04:00
|
|
|
https://github.com/nikita-volkov/hasql
|
2014-08-03 17:48:18 +04:00
|
|
|
bug-reports:
|
2014-10-18 00:03:02 +04:00
|
|
|
https://github.com/nikita-volkov/hasql/issues
|
2014-08-03 17:48:18 +04:00
|
|
|
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
|
2014-12-18 00:33:18 +03:00
|
|
|
extra-source-files:
|
|
|
|
CHANGELOG.md
|
2014-08-03 17:48:18 +04:00
|
|
|
|
|
|
|
|
|
|
|
source-repository head
|
|
|
|
type:
|
|
|
|
git
|
|
|
|
location:
|
2014-10-18 00:03:02 +04:00
|
|
|
git://github.com/nikita-volkov/hasql.git
|
2014-08-03 17:48:18 +04:00
|
|
|
|
|
|
|
|
|
|
|
library
|
|
|
|
hs-source-dirs:
|
|
|
|
library
|
2014-10-28 15:02:44 +03:00
|
|
|
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
|
2014-08-03 17:48:18 +04:00
|
|
|
other-modules:
|
2014-10-18 00:03:02 +04:00
|
|
|
Hasql.Prelude
|
2014-11-11 00:06:36 +03:00
|
|
|
Hasql.QParser
|
2014-10-18 00:03:02 +04:00
|
|
|
Hasql.RowParser
|
2014-11-11 00:06:36 +03:00
|
|
|
Hasql.TH
|
2014-08-03 17:48:18 +04:00
|
|
|
exposed-modules:
|
2014-10-18 00:03:02 +04:00
|
|
|
Hasql
|
2014-08-03 17:48:18 +04:00
|
|
|
build-depends:
|
2014-12-27 03:29:36 +03:00
|
|
|
--
|
|
|
|
resource-pool == 0.2.*,
|
|
|
|
hasql-backend == 0.3.*,
|
|
|
|
--
|
2014-08-11 19:10:18 +04:00
|
|
|
template-haskell >= 2.8 && < 2.10,
|
2014-12-27 03:29:36 +03:00
|
|
|
--
|
2014-11-16 14:07:51 +03:00
|
|
|
attoparsec >= 0.10 && < 0.13,
|
2014-12-27 03:29:36 +03:00
|
|
|
--
|
2014-10-25 16:32:12 +04:00
|
|
|
vector < 0.11,
|
2014-11-16 14:07:51 +03:00
|
|
|
text >= 1.0 && < 1.3,
|
2014-12-27 03:29:36 +03:00
|
|
|
--
|
|
|
|
either >= 4.3 && < 4.4,
|
|
|
|
list-t >= 0.3.1 && < 0.5,
|
2014-11-30 02:39:32 +03:00
|
|
|
mmorph == 1.0.*,
|
2014-12-27 03:29:36 +03:00
|
|
|
mtl >= 2.1 && < 2.3,
|
2014-12-27 06:17:24 +03:00
|
|
|
monad-control == 1.0.*,
|
2014-12-27 04:45:08 +03:00
|
|
|
transformers-base == 0.4.*,
|
2014-11-30 02:39:32 +03:00
|
|
|
transformers >= 0.3 && < 0.5,
|
2014-10-12 23:12:35 +04:00
|
|
|
base-prelude >= 0.1.3 && < 0.2,
|
|
|
|
base >= 4.5 && < 4.8
|
2014-10-28 15:00:42 +03:00
|
|
|
|
|
|
|
|
2014-12-18 00:50:13 +03:00
|
|
|
test-suite hspec
|
2014-11-18 12:19:27 +03:00
|
|
|
type:
|
|
|
|
exitcode-stdio-1.0
|
|
|
|
hs-source-dirs:
|
2014-12-18 00:50:13 +03:00
|
|
|
hspec
|
2014-11-18 12:19:27 +03:00
|
|
|
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:
|
2014-12-18 00:50:13 +03:00
|
|
|
--
|
2014-11-29 14:48:14 +03:00
|
|
|
hasql,
|
2014-12-27 03:29:36 +03:00
|
|
|
hasql-backend,
|
2014-12-18 00:50:13 +03:00
|
|
|
--
|
|
|
|
hspec == 2.1.*,
|
|
|
|
--
|
2014-12-27 03:29:36 +03:00
|
|
|
vector,
|
|
|
|
--
|
2014-12-18 00:50:13 +03:00
|
|
|
mtl-prelude < 3,
|
|
|
|
base-prelude,
|
|
|
|
base
|
2014-11-18 12:19:27 +03:00
|
|
|
|
|
|
|
|
2014-12-18 00:50:13 +03:00
|
|
|
test-suite hspec-postgres
|
|
|
|
type:
|
2014-11-23 19:54:11 +03:00
|
|
|
exitcode-stdio-1.0
|
2014-12-18 00:50:13 +03:00
|
|
|
hs-source-dirs:
|
|
|
|
hspec-postgres
|
|
|
|
main-is:
|
2014-11-23 19:54:11 +03:00
|
|
|
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:
|
2014-12-18 00:50:13 +03:00
|
|
|
--
|
2014-11-29 14:48:14 +03:00
|
|
|
hasql,
|
2014-12-27 03:29:36 +03:00
|
|
|
hasql-postgres == 0.10.*,
|
2014-12-18 00:50:13 +03:00
|
|
|
--
|
2014-12-18 01:24:12 +03:00
|
|
|
slave-thread == 0.1.*,
|
|
|
|
--
|
2014-12-18 00:50:13 +03:00
|
|
|
hspec == 2.1.*,
|
|
|
|
--
|
2014-12-18 01:24:12 +03:00
|
|
|
text,
|
|
|
|
--
|
2014-12-27 03:29:36 +03:00
|
|
|
monad-control,
|
|
|
|
either,
|
2014-11-23 19:54:11 +03:00
|
|
|
mtl-prelude < 3,
|
2014-12-18 00:50:13 +03:00
|
|
|
base-prelude,
|
|
|
|
base
|
2014-11-23 19:54:11 +03:00
|
|
|
|
|
|
|
|
2014-10-28 15:00:42 +03:00
|
|
|
-- Well, it's not a benchmark actually,
|
2014-11-11 00:06:36 +03:00
|
|
|
-- but in Cabal there's no better way to specify an executable,
|
|
|
|
-- which is not intended for distribution.
|
2014-10-28 15:00:42 +03:00
|
|
|
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:
|
2014-11-29 14:48:14 +03:00
|
|
|
hasql,
|
2014-12-27 03:29:36 +03:00
|
|
|
hasql-postgres == 0.10.*,
|
2014-11-30 02:39:32 +03:00
|
|
|
transformers >= 0.3 && < 0.5,
|
2014-10-28 15:00:42 +03:00
|
|
|
base >= 4.5 && < 4.8
|
|
|
|
|
|
|
|
|