hasql/hasql.cabal

148 lines
3.9 KiB
Plaintext
Raw Normal View History

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-11-11 00:06:36 +03:00
0.1.5
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-10-28 15:02:44 +03:00
relational databases.
.
Features:
2014-10-24 01:21:44 +04:00
.
* Concise and crisp API. Just a few functions and two monads doing all the
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-10-27 16:06:57 +03:00
* A built-in connections pool.
2014-10-24 01:21:44 +04:00
.
* 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.
2014-10-28 15:02:44 +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-10 13:52:05 +03:00
* <http://hackage.haskell.org/package/hasql-0.1.3/src/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
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-10-23 00:07:40 +04:00
hasql-backend == 0.1.*,
2014-08-04 15:29:41 +04:00
-- template-haskell:
2014-08-11 19:10:18 +04:00
template-haskell >= 2.8 && < 2.10,
2014-08-04 02:37:01 +04:00
-- parsing:
2014-08-11 19:10:18 +04:00
attoparsec == 0.12.*,
2014-08-03 17:48:18 +04:00
-- database:
ex-pool == 0.2.*,
2014-08-04 02:36:41 +04:00
-- data:
2014-10-25 16:32:12 +04:00
vector < 0.11,
2014-10-12 23:12:35 +04:00
time >= 1.4 && < 1.6,
2014-08-04 02:36:41 +04:00
bytestring == 0.10.*,
2014-10-13 02:21:27 +04:00
text >= 1.1 && < 1.3,
2014-08-05 00:21:32 +04:00
-- control:
2014-10-17 21:24:33 +04:00
list-t >= 0.2.4 && < 0.3,
2014-08-05 00:21:32 +04:00
monad-control == 0.3.*,
transformers-base == 0.4.*,
2014-08-03 17:48:18 +04:00
-- errors:
loch-th == 0.2.*,
placeholders == 0.1.*,
-- general:
2014-10-23 20:04:11 +04:00
monad-control == 0.3.*,
transformers-base == 0.4.*,
2014-10-12 23:12:35 +04:00
safe >= 0.3.8 && < 0.4,
2014-10-13 02:21:27 +04:00
mmorph == 1.0.*,
2014-10-22 18:45:36 +04:00
mtl-prelude == 2.*,
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
-- 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:
hasql-postgres == 0.1.*,
hasql == 0.1.*,
transformers,
base >= 4.5 && < 4.8