hasql/hasql.cabal
2014-11-13 15:50:36 +03:00

148 lines
3.9 KiB
Plaintext

name:
hasql
version:
0.1.5
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.
.
* Type-level generation of templates. You just can't write a statement with an
incorrect number of placeholders.
.
* Mapping to any types actually supported by the backend.
.
Links:
.
* <http://nikita-volkov.github.io/hasql-benchmarks/ Benchmarks analysis>.
.
* <http://hackage.haskell.org/package/hasql-0.1.3/src/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
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.1.*,
-- template-haskell:
template-haskell >= 2.8 && < 2.10,
-- parsing:
attoparsec == 0.12.*,
-- database:
ex-pool == 0.2.*,
-- data:
vector < 0.11,
time >= 1.4 && < 1.6,
bytestring == 0.10.*,
text >= 1.1 && < 1.3,
-- control:
list-t >= 0.2.4 && < 0.3,
monad-control == 0.3.*,
transformers-base == 0.4.*,
-- errors:
loch-th == 0.2.*,
placeholders == 0.1.*,
-- general:
monad-control == 0.3.*,
transformers-base == 0.4.*,
safe == 0.3.*,
mmorph == 1.0.*,
mtl-prelude < 3,
base-prelude >= 0.1.3 && < 0.2,
base >= 4.5 && < 4.8
-- 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-postgres == 0.3.*,
hasql == 0.1.*,
transformers,
base >= 4.5 && < 4.8