LiteSpeed QUIC (lsquic)¤
Plugin Type: Service (IUT) Source Location:
plugins/services/iut/quic/lsquic/
Overview¤
The lsquic plugin provides integration with LiteSpeed's QUIC implementation, a high-performance C library developed by LiteSpeed Technologies. lsquic is a production-grade implementation optimized for server workloads and high-throughput scenarios, widely used in commercial web servers and CDN infrastructure.
Configuration Options¤
| Parameter | Type | Default | Description |
|---|---|---|---|
name |
str | "lsquic" | Implementation name |
doc_root |
str | "/var/www" | Document root for serving files |
enable_push |
bool | True | Enable HTTP/3 PUSH |
max_conns |
Optional[int] | None | Maximum number of connections |
request_path |
str | "/" | Request path |
method |
str | "GET" | HTTP method |
headers |
Optional[Dict[str, str]] | {} | Request headers |
output_file |
Optional[str] | None | Output file path |
library_path |
str | "/opt/lsquic/lib" | LSQUIC library path |
logs_dir |
str | "/app/logs/artifacts" | Logs directory |
max_packet_size |
Optional[int] | None | Maximum packet size |
initial_max_data |
Optional[int] | None | Initial max data limit |
initial_max_stream_data |
Optional[int] | None | Initial max stream data |
quic_version |
Optional[str] | None | QUIC version to use |
handshake_timeout |
Optional[int] | None | Handshake timeout in seconds |
idle_timeout |
Optional[int] | None | Idle timeout in seconds |
verbose |
bool | False | Enable verbose logging |
debug_level |
Optional[int] | None | Debug logging level |
Usage Example¤
tests:
- name: "lsquic Basic Test"
network_environment:
type: docker_compose
services:
server:
implementation:
name: lsquic
type: iut
protocol:
name: quic
version: rfc9000
role: server
client:
implementation:
name: lsquic
type: iut
protocol:
name: quic
version: rfc9000
role: client
target: server
steps:
wait: 30
Integration¤
- Inherits from
BaseQUICServiceManagerusing the template method pattern for consistent QUIC behavior - Uses LiteSpeed's
http_serverandhttp_clientexecutables with C-based compilation - Docker-based deployment includes pre-built binaries with BoringSSL/OpenSSL and libevent dependencies
- Optimized for high-throughput server workloads, load testing, and CDN compatibility validation
Troubleshooting¤
| Issue | Solution |
|---|---|
| Connection drops | Check firewall UDP port configuration and certificate validity |
| Performance bottlenecks | Profile CPU usage, check memory allocation patterns, tune buffer sizes |
| TLS/security issues | Verify certificate trust chains and ALPN protocol negotiation |