packages feed

quic-simple-0.1.2.0: CHANGELOG.md

# Changelog for `quic-simple`

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to the
[Haskell Package Versioning Policy](https://pvp.haskell.org/).

## 0.1.2.0 - 2026-09-03

- Servers and clients are datagram-enabled by default.
- Added server input queue to runServerStateful setup callback.
  * Can be used to inject datagrams as server queries.
- startClientAsync no longer inherits the caller's exception mask, so stopping a client started inside a bracket cannot deadlock on the quic watchdog thread.

- `Network.QUIC.Simple.Stream` is now meant for qualified import: `streamSerialise` and `streamCodec` became `Stream.serialise` and `Stream.codec`.
- Added `Stream.open` and `Stream.acceptLoop` for running multiple protocols over one connection, each stream announced by a header message.
- Added `Stream.sendMessage` and `Stream.recvMessage` for one-shot CBOR exchanges on bare streams, e.g. handshakes and stream headers.
- Added `Stream.serialiseFrom` and `Stream.codecFrom` to pick up a stream after a header, and `Stream.consume` for raw byte payloads.
- Stream workers now finish when the peer closes the stream instead of spinning on the end of stream.

## 0.1.1.0 - 2025-12-02

- Stream wrappers now use async and will close their streams on exit.
  * The exposed stream worker can be used for linking to other threads.
  * Client and servers link to their default streams.
- Added `runServerStateful`, a more complex layer under Simple server.
- Added `startClientAsync`, a less complex layer under Simple client.

## 0.1.0.1 - 2025-11-30

- Added `onException` to `startClientSimple` wrapper, so it can be timed out without leaking its client.

## 0.1.0.0 - 2025-11-29

Initial release.