pqi-0.0.1.0: pqi.cabal
cabal-version: 3.0
name: pqi
version: 0.0.1.0
category: Database, PostgreSQL
synopsis: Driver-agnostic interface to the PostgreSQL libpq API
description:
@pqi@ reproduces the API surface of the @postgresql-libpq@ package, but
reifies the connection (and its results) as a type class instead of a single
concrete type. This lets callers program against one interface and pick an
adapter at the type level:
* @pqi-ffi@ — a thin adapter backed by the C @libpq@ library via
@postgresql-libpq@.
* @pqi-native@ — a pure-Haskell adapter that speaks the PostgreSQL wire
protocol directly.
This package ships only the interface: the typeclasses, types and a couple of connection-independent helpers.
homepage: https://github.com/nikita-volkov/pqi
bug-reports: https://github.com/nikita-volkov/pqi/issues
author: Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
copyright: (c) 2026, Nikita Volkov
license: MIT
license-file: LICENSE
extra-doc-files:
CHANGELOG.md
LICENSE
README.md
source-repository head
type: git
location: https://github.com/nikita-volkov/pqi
common base
default-language: Haskell2010
default-extensions:
ApplicativeDo
BangPatterns
BinaryLiterals
BlockArguments
ConstraintKinds
DataKinds
DefaultSignatures
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveTraversable
DerivingStrategies
DerivingVia
DuplicateRecordFields
EmptyDataDecls
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
LambdaCase
LiberalTypeSynonyms
MagicHash
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
NoFieldSelectors
NoImplicitPrelude
NoMonomorphismRestriction
NumericUnderscores
OverloadedRecordDot
OverloadedStrings
ParallelListComp
PatternGuards
QuasiQuotes
RankNTypes
RecordWildCards
ScopedTypeVariables
StandaloneDeriving
StrictData
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeOperators
UnboxedTuples
ViewPatterns
common test
import: base
ghc-options:
-threaded
-with-rtsopts=-N
library
import: base
hs-source-dirs: src/library
exposed-modules:
Pqi
other-modules:
Pqi.UnescapeBytea
build-depends:
base >=4.11 && <5,
bytestring >=0.10 && <0.13,
ptr-peeker >=0.2 && <0.3,
ptr-poker >=0.1 && <0.2,
test-suite pqi-test
import: test
type: exitcode-stdio-1.0
hs-source-dirs: src/test
main-is: Spec.hs
build-depends:
base >=4.11 && <5,
bytestring >=0.10 && <0.13,
hspec >=2.11 && <2.12,
postgresql-libpq >=0.11 && <0.12,
pqi,
QuickCheck >=2.14 && <3,