quic-simple

Quick-start wrappers for QUIC

Stackage Nightly 2025-12-02:0.1.1.0
Latest on Hackage:0.1.1.0

See all snapshots quic-simple appears in

BSD-3-Clause licensed by IC Rainbow
Maintained by [email protected]
This version can be pinned in stack with:quic-simple-0.1.1.0@sha256:2a983d9ac3e2f966d4bbabcd28bbdce6920027abf2ac5aa4d223989765573227,2311

Module documentation for 0.1.1.0

quic-simple

A set of wrappers for getting started with QUIC easier.

  • QUIC.runServer [("127.0.0.1", 14443)] \conn stream -> – start a generic server with random TLS credentials and auto-accept the first stream.
  • QUIC.runClient "127.0.0.1" "14443" \conn stream -> – start a generic client and request an initial stream.
  • (writeQ, readQ) <- QUIC.streamCodec encode decodeIncremental stream – convert a stream to a pair of queues.
  • (writeQ, readQ) <- QUIC.streamSerialise stream – run a CBOR codec over a stream.

An extra-simple pair of wrappers for QUIC and dirty RPC:

  • QUIC.runServerSimple "127.0.0.1" 14443 handleCall – start a CBOR server running streamSerialise.
  • (stop, call) <- QUIC.startClientSimple "127.0.0.1" "14443" – spawn a CBOR client running streamSerialise.

See tests for copypastable examples of different wrapping levels.

Changes

Changelog for quic-simple

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

The format is based on Keep a Changelog, and this project adheres to the Haskell Package Versioning Policy.

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.