quic-simple: Quick-start wrappers for QUIC

[ bsd3, library, network ] [ Propose Tags ] [ Report a vulnerability ]

A few layers over QUIC, to get the first bytes out faster. The top level is RPC-like, using Serialise as a codec. Copypaste the code and peel layers as you go to get more power and flexibility.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.1.0 (info)
Change log CHANGELOG.md
Dependencies async, base (>=4.7 && <5), bytestring, crypton, crypton-x509, hourglass, iproute, memory, network, quic (>=0.2.7), serialise, stm, tls [details]
License BSD-3-Clause
Copyright 2025 IC Rainbow
Author IC Rainbow
Maintainer aenor.realm@gmail.com
Category Network
Source repo head: git clone https://gitlab.com/dpwiz/quic-simple
Uploaded by AlexanderBondarenko at 2025-12-01T23:34:12Z
Distributions Stackage:0.1.1.0
Downloads 14 total (14 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2025-12-02 [all 1 reports]

Readme for quic-simple-0.1.1.0

[back to package description]

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.