packages feed

valiant-cli-0.1.0.0: CHANGELOG.md

# Changelog

All notable changes to the valiant project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0.0] - 2026-04-25

Initial release. The project ships four primary packages plus eight adapter
libraries.

### Packages

- **pg-wire** 0.1.0.0: pure-Haskell PostgreSQL v3 wire-protocol driver. No
  libpq, no C dependencies. Includes a connection pool with idle reaping,
  health checks, jittered max-life, queue mode (LIFO/FIFO), recycling
  modes, lifecycle hooks, and `nothunks`-checked invariants.
- **valiant** 0.1.0.0: runtime library. Binary codecs for all common
  PostgreSQL types (numerics, text, time, UUID, JSON/JSONB, hstore, inet,
  macaddr, point, ranges, arrays, composites, enums), a `Statement` type,
  query execution, server-side cursor streaming, pipelined execution,
  COPY in/out, large objects, LISTEN/NOTIFY, advisory locks, transactions,
  and re-exports from `pg-wire`.
- **valiant-cli** 0.1.0.0: `valiant` CLI with `prepare`, `check`,
  `types`, `generate`, and `watch` commands.
- **valiant-plugin** 0.1.0.0: GHC source plugin that validates SQL files
  against the `.valiant/` cache at compile time.

### Adapters

Eight first-party adapters for popular effect systems and streaming
libraries: `valiant-bluefin`, `valiant-conduit`, `valiant-effectful`,
`valiant-fused-effects`, `valiant-mtl`, `valiant-pipes`,
`valiant-streaming`, `valiant-streamly`.

### Highlights

- **Compile-time SQL safety.** Raw `.sql` files are validated against a
  live PostgreSQL database via `valiant prepare` and a `.valiant/` cache.
  The GHC source plugin checks parameter and result types at compile
  time. No Template Haskell.
- **Performance.** Roughly 5x faster than hasql on multi-row reads and
  10x faster on pipelined batch writes in our comparative benchmarks
  (`bench-compare`). Competitive with asyncpg (Python) on throughput.
- **Wire protocol features.** Extended query protocol with binary
  format, statement caching, prepared statements, server-side cursors,
  pipelining, COPY in/out (including CSV), large objects,
  LISTEN/NOTIFY, query cancellation, cleartext, MD5, and SCRAM-SHA-256
  authentication.
- **Strict by default.** `StrictData`, `-funbox-strict-fields`, and
  `-fspecialise-aggressively` across all libraries. `-fno-full-laziness`
  on streaming-sensitive modules. `nothunks` invariants on the pool.
- **Tested.** 267 unit tests in `pg-wire`, 282 in `valiant`, 101
  integration tests against a real Postgres, plus property tests with
  hedgehog and a state-machine test for the connection pool.

### Added (post-tag)

- `refine` and `refineWith` combinators in `Valiant.Binary.Decode` for
  validating decoded values against extra invariants without writing a
  full `PgDecode` instance.
- `fetchAllUnboxed`: an unboxed-vector variant of `fetchAllVec` for
  fixed-size primitive result columns. Eliminates per-element pointer
  indirection for `Int32`/`Int64`/`Double`/`Bool` and tuples of those.

### Documentation

- Tutorial, performance notes, asyncpg comparison, async architecture,
  and gap analysis under `docs/`.
- Per-package READMEs for `pg-wire`, `valiant`, `valiant-cli`,
  `valiant-plugin`, and each adapter.

[0.1.0.0]: https://github.com/joshburgess/valiant/releases/tag/v0.1.0.0