Reference implementation of QUIC-LY transport protocol (which is QUIC without encryption) using the Python Trio framework.
QUIC-LY stands for QUIC Lean Yet-reliable — a minimalist, unencrypted variant of the QUIC transport protocol. Built for Python, QUIC-LY emphasizes simplicity, ordered delivery, and congestion control with as little overhead as possible.
QUIC-LY is designed for use cases where encryption is not required, but reliability and efficiency still matter — such as controlled environments, internal RPC systems, or research/prototyping.
It trims down the original QUIC protocol by removing TLS, reducing metadata, and focusing on just what you need:
Reliable delivery, congestion control, and stream multiplexing — without the crypto baggage.
QUIC-LY is a simplified version of QUIC for educational and experimental purposes.
It omits encryption, focusing on core transport functionality.
Find the QUIC-LY specification in IETF Draft notation.
QUIC v1 was standardized in May 2021 in RFC 9000 and accompanied by RFC 9002 ("QUIC Loss Detection and Congestion Control").
- 🚫 No encryption — Designed for trusted networks
- ✅ Reliable, ordered delivery
- 📦 Stream multiplexing (QUIC-style)
- 📉 Built-in congestion control
- 🧠 Simple, readable Python 3 codebase
- 🛠️ Extensible for experimentation and research
- Easy to understand and modify
- Based on Python and the Trio async framework
- Close adherence to the IETF QUIC transport specification (minus TLS) including Loss Detection and Congestion Control.
quicly/
— Core protocol logicexamples/
— Sample client/server appstests/
— Unit tests
- Python 3.11+
- Python Poetry
Install Poetry if you don't have it
curl -sSL https://install.python-poetry.org | python3 -
Install project dependencies
poetry install
Activate the virtual environment and run examples
poetry run python examples/server.py
poetry run python examples/client.py