pg-wire-0.1.0.0: pg-wire.cabal
cabal-version: 3.0
name: pg-wire
version: 0.1.0.0
synopsis: Pure Haskell PostgreSQL wire protocol driver
description:
A complete implementation of the PostgreSQL v3 wire protocol in
pure Haskell. Includes connection management, authentication
(SCRAM-SHA-256, MD5, cleartext), TLS, connection pooling, and
binary format type classes. No dependency on libpq or any C library.
license: BSD-3-Clause
license-file: LICENSE
author: Josh Burgess
maintainer: joshburgess.webdev@gmail.com
category: Database
homepage: https://github.com/joshburgess/valiant
bug-reports: https://github.com/joshburgess/valiant/issues
build-type: Simple
extra-doc-files:
README.md
CHANGELOG.md
tested-with: GHC ==9.10.3
source-repository head
type: git
location: https://github.com/joshburgess/valiant
subdir: wire
flag werror
description: Enable -Werror for development builds.
default: False
manual: True
common warnings
ghc-options: -Wall -Wcompat -Wno-unticked-promoted-constructors -funbox-strict-fields -fspecialise-aggressively
if flag(werror)
ghc-options: -Werror
library
import: warnings
hs-source-dirs: src
default-language: GHC2021
default-extensions:
DerivingStrategies
LambdaCase
OverloadedStrings
RecordWildCards
StrictData
exposed-modules:
PgWire.Async
PgWire.Auth.Cleartext
PgWire.Auth.MD5
PgWire.Auth.ScramSHA256
PgWire.Binary.Types
PgWire.Cancel
PgWire.Connection
PgWire.Connection.Config
PgWire.Error
PgWire.Pool
PgWire.Pool.Config
PgWire.Pool.Observation
PgWire.Protocol.Backend
PgWire.Protocol.Builders
PgWire.Protocol.Frontend
PgWire.Protocol.Oid
PgWire.Protocol.Parsers
PgWire.TypeCache
PgWire.Wire
build-depends:
-- Core
, base >=4.17 && <5
, bytestring >=0.11 && <0.13
, text >=2.0 && <2.2
, containers >=0.6 && <0.8
, vector >=0.13 && <0.14
, time >=1.12 && <1.15
, deepseq >=1.4 && <1.6
-- Networking
, network >=3.1 && <3.3
-- TLS
, tls >=1.7 && <2.2
, crypton-x509-store >=1.6 && <1.7
, crypton-x509-system >=1.6 && <1.7
-- Crypto (auth)
, crypton >=0.34 && <1.1
, cryptohash-md5 >=0.11 && <0.12
, memory >=0.18 && <0.19
, base64-bytestring >=1.2 && <1.3
-- Misc
, directory >=1.3 && <1.4
, hashable >=1.4 && <1.6
, nothunks >=0.1 && <0.3
, psqueues >=0.2.8 && <0.3
, random >=1.2 && <1.4
-- Concurrency / pool
, stm >=2.5 && <2.6
, async >=2.2 && <2.3
-- Mock PostgreSQL server for testing client behaviour without a real
-- database. Sub-library so this isn't part of the public pg-wire API.
library mockserver
import: warnings
visibility: public
hs-source-dirs: mockserver
default-language: GHC2021
default-extensions:
DerivingStrategies
LambdaCase
OverloadedStrings
RecordWildCards
StrictData
exposed-modules:
PgWire.MockServer
build-depends:
, base >=4.17 && <5
, bytestring >=0.11 && <0.13
, network >=3.1 && <3.3
, pg-wire
test-suite pg-wire-test
import: warnings
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
default-language: GHC2021
default-extensions:
OverloadedStrings
other-modules:
PgWire.Auth.MD5Spec
PgWire.Auth.ScramFieldsSpec
PgWire.CancelSpec
PgWire.Connection.ConfigSpec
PgWire.Connection.EscapingSpec
PgWire.Connection.FeaturesSpec
PgWire.ErrorSpec
PgWire.MockServerSpec
PgWire.Pool.ConfigSpec
PgWire.Pool.NoThunksSpec
PgWire.Pool.PropertySpec
PgWire.Pool.StateMachineSpec
PgWire.Protocol.BuildersSpec
PgWire.Protocol.FuzzSpec
PgWire.Protocol.OidSpec
PgWire.Protocol.ParsersSpec
ghc-options: -rtsopts "-with-rtsopts=-K8K" -finfo-table-map -fdistinct-constructor-tables
build-depends:
, async >=2.2 && <2.3
, base >=4.17 && <5
, bytestring
, crypton
, deepseq
, hedgehog >=1.2 && <1.6
, hspec >=2.11 && <2.13
, hspec-hedgehog >=0.1 && <0.3
, memory
, nothunks
, pg-wire
, pg-wire:mockserver
, vector