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.
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.10+
- 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