pqi-native: Native (pure-Haskell) adapter for pqi

[ database, library, mit, postgresql ] [ Propose Tags ] [ Report a vulnerability ]

A pqi adapter that speaks the PostgreSQL frontend/backend wire protocol directly, with no dependency on the C libpq library. The transport layer (framing, message serialization/deserialization, socket I/O) is isolated in an internal transport sub-library built on ptr-poker and ptr-peeker; the public library is an abstraction over it that implements the pqi capability classes.


[Skip to Readme]

library pqi-native

library pqi-native:transport

library pqi-native:comms

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1.0, 0.0.1.1
Change log CHANGELOG.md
Dependencies base (>=4.11 && <5), base64-bytestring (>=1.2 && <1.3), bytestring (>=0.10 && <0.13), containers (>=0.6 && <0.9), crypton (>=0.34 && <2), network (>=3.1 && <3.3), pqi (>=0.0 && <0.1), pqi-native, ptr-peeker (>=0.2 && <0.3), ptr-poker (>=0.1.3 && <0.2), transformers (>=0.5 && <0.7), unix (>=2.7 && <2.9) [details]
License MIT
Copyright (c) 2026, Nikita Volkov
Author Nikita Volkov <nikita.y.volkov@mail.ru>
Maintainer Nikita Volkov <nikita.y.volkov@mail.ru>
Uploaded by NikitaVolkov at 2026-06-18T11:30:53Z
Category Database, PostgreSQL
Home page https://github.com/nikita-volkov/pqi-native
Bug tracker https://github.com/nikita-volkov/pqi-native/issues
Source repo head: git clone https://github.com/nikita-volkov/pqi-native
Distributions
Downloads 0 total (0 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2026-06-18 [all 1 reports]

Readme for pqi-native-0.0.1.1

[back to package description]

pqi-native

Hackage Continuous Haddock

A pure-Haskell pqi adapter that speaks the PostgreSQL frontend/backend wire protocol directly — no dependency on the C libpq library.

pqi-native is an LLM-generated port of the PostgreSQL C client library, libpq. The upstream libpq source is the direct reference for the implementation.

Fidelity goal

The goal is byte-identical output to libpq for every protocol-derived value — error message strings, notice text, result status, field metadata, cell data, and all structured error fields. Fidelity is continuously enforced by pqi-conformance, which runs every operation on both this adapter and a direct postgresql-libpq reference connection against the same database and asserts exact equality.

Status

All classes are implemented. Verified against the postgresql-libpq reference via the conformance differential suite.

Authentication: trust, MD5, and SCRAM-SHA-256 are implemented. SCRAM is verified against a password-auth PostgreSQL 17 container (which defaults to scram-sha-256).