120 lines
4.0 KiB
Plaintext
120 lines
4.0 KiB
Plaintext
name: esqueleto
|
|
version: 2.4.3
|
|
synopsis: Type-safe EDSL for SQL queries on persistent backends.
|
|
homepage: https://github.com/prowdsponsor/esqueleto
|
|
license: BSD3
|
|
license-file: LICENSE
|
|
author: Felipe Lessa
|
|
maintainer: felipe.lessa@gmail.com
|
|
copyright: (c) 2012-2015 Felipe Almeida Lessa
|
|
category: Database
|
|
build-type: Simple
|
|
cabal-version: >=1.8
|
|
description:
|
|
@esqueleto@ is a bare bones, type-safe EDSL for SQL queries
|
|
that works with unmodified @persistent@ SQL backends. Its
|
|
language closely resembles SQL, so you don't have to learn
|
|
new concepts, just new syntax, and it's fairly easy to
|
|
predict the generated SQL and optimize it for your backend.
|
|
Most kinds of errors committed when writing SQL are caught as
|
|
compile-time errors---although it is possible to write
|
|
type-checked @esqueleto@ queries that fail at runtime.
|
|
.
|
|
@persistent@ is a library for type-safe data serialization. It
|
|
has many kinds of backends, such as SQL backends
|
|
(@persistent-mysql@, @persistent-postgresql@,
|
|
@persistent-sqlite@) and NoSQL backends (@persistent-mongoDB@).
|
|
While @persistent@ is a nice library for storing and retrieving
|
|
records, including with filters, it does not try to support
|
|
some of the features that are specific to SQL backends. In
|
|
particular, @esqueleto@ is the recommended library for
|
|
type-safe @JOIN@s on @persistent@ SQL backends. (The
|
|
alternative is using raw SQL, but that's error prone and does
|
|
not offer any composability.)
|
|
.
|
|
Currently, @SELECT@s, @UPDATE@s, @INSERT@s and @DELETE@s are supported.
|
|
Not all SQL features are available, but most of them can be easily added
|
|
(especially functions), so please open an issue or send a pull request if
|
|
you need anything that is not covered by @esqueleto@ on
|
|
<https://github.com/prowdsponsor/esqueleto/>.
|
|
.
|
|
The name of this library means \"skeleton\" in Portuguese and
|
|
contains all three SQL letters in the correct order =). It was
|
|
inspired by Scala's Squeryl but created from scratch.
|
|
|
|
source-repository head
|
|
type: git
|
|
location: git://github.com/prowdsponsor/esqueleto.git
|
|
|
|
Flag postgresql
|
|
Description: test postgresql. default is to test sqlite.
|
|
Default: False
|
|
|
|
Flag mysql
|
|
Description: test MySQL/MariaDB. default is to test sqlite.
|
|
Default: False
|
|
|
|
library
|
|
exposed-modules:
|
|
Database.Esqueleto
|
|
Database.Esqueleto.PostgreSQL
|
|
Database.Esqueleto.Internal.Language
|
|
Database.Esqueleto.Internal.Sql
|
|
other-modules:
|
|
Database.Esqueleto.Internal.PersistentImport
|
|
build-depends:
|
|
base >= 4.5 && < 4.9
|
|
, bytestring
|
|
, text >= 0.11 && < 1.3
|
|
, persistent >= 2.5 && < 2.6
|
|
, transformers >= 0.2
|
|
, unordered-containers >= 0.2
|
|
, tagged >= 0.2
|
|
|
|
, monad-logger
|
|
, conduit >= 1.1
|
|
, resourcet >= 1.1
|
|
, blaze-html
|
|
hs-source-dirs: src/
|
|
ghc-options: -Wall
|
|
|
|
test-suite test
|
|
type: exitcode-stdio-1.0
|
|
ghc-options: -Wall
|
|
hs-source-dirs: test
|
|
main-is: Test.hs
|
|
build-depends:
|
|
-- Library dependencies used on the tests. No need to
|
|
-- specify versions since they'll use the same as above.
|
|
base, persistent, transformers, resourcet, text
|
|
|
|
-- Test-only dependencies
|
|
, conduit >= 1.1
|
|
, containers
|
|
, HUnit
|
|
, QuickCheck
|
|
, hspec >= 1.8
|
|
, persistent-sqlite >= 2.1
|
|
, persistent-template >= 2.1
|
|
, monad-control
|
|
, monad-logger >= 0.3
|
|
|
|
-- This library
|
|
, esqueleto
|
|
|
|
if flag(postgresql)
|
|
build-depends:
|
|
postgresql-simple >= 0.2
|
|
, postgresql-libpq >= 0.6
|
|
, persistent-postgresql >= 2.0
|
|
|
|
cpp-options: -DWITH_POSTGRESQL
|
|
|
|
if flag(mysql)
|
|
build-depends:
|
|
mysql-simple >= 0.2.2.3
|
|
, mysql >= 0.1.1.3
|
|
, persistent-mysql >= 2.0
|
|
|
|
cpp-options: -DWITH_MYSQL
|