aioquic¤
Plugin Type: Service (IUT) Source Location:
plugins/services/iut/quic/aioquic/
Overview¤
The aioquic plugin provides integration with Python's aioquic library, a pure Python implementation of QUIC and HTTP/3. Developed by the aioquic team, this implementation is particularly valuable for Python-based testing scenarios and educational purposes due to its readable, pure-Python codebase with native asyncio support.
Configuration Options¤
| Parameter | Type | Default | Description |
|---|---|---|---|
name |
str | "aioquic" | Implementation name |
server_root |
str | "/var/www" | Document root for serving files |
server_certificate |
Optional[str] | "/certs/cert.pem" | Server certificate path |
server_private_key |
Optional[str] | "/certs/key.pem" | Server private key path |
session_ticket_store |
Optional[str] | None | Session ticket store path |
client_output_dir |
str | "/app/logs/artifacts" | Client output directory |
client_insecure |
bool | True | Skip certificate verification |
client_legacy_http |
bool | False | Enable legacy HTTP support |
verbose |
bool | False | Enable verbose logging |
secrets_log |
Optional[str] | None | Path to secrets log file |
python_path |
str | "/opt/aioquic" | Python path for aioquic |
examples_dir |
str | "/opt/aioquic/examples" | Examples directory |
enable_http3 |
bool | True | Enable HTTP/3 support |
enable_websockets |
bool | True | Enable WebSocket support |
enable_priority |
bool | True | Enable stream priority |
enable_push |
bool | True | Enable server push |
enable_datagram |
bool | True | Enable datagram support |
Usage Example¤
tests:
- name: "aioquic Basic Test"
network_environment:
type: docker_compose
services:
server:
implementation:
name: aioquic
type: iut
protocol:
name: quic
version: rfc9000
role: server
client:
implementation:
name: aioquic
type: iut
protocol:
name: quic
version: rfc9000
role: client
target: server
steps:
wait: 30
Integration¤
- Inherits from
PythonQUICServiceManagerwhich extendsBaseQUICServiceManager, providing Python-specific async/await integration - Docker-based deployment handles Python dependency installation automatically through the base class
- Supports HTTP/3, WebSocket, server push, and datagram features over QUIC
- Pure Python implementation with no C extensions, suitable for educational and debugging use
Troubleshooting¤
| Issue | Solution |
|---|---|
| Connection timeouts | Verify network connectivity, check certificate validity, increase idle timeout |
| Certificate errors | Ensure certificate matches hostname/IP and chain is complete |
| Performance issues | Monitor Python GC overhead; consider PyPy for improved performance |