A hybrid user-kernel QUIC implementation.
The idea of this approach is to utilize the user space such that protocol extensions can be implemented and deployed more easily, while basic protocol features reside in the kernel for an optimized performance behavior.
Aiming to support the implementation of every possible upcoming extension in the user space seems implausible and would eventually result in a user-space-only QUIC implementation and/or an unmanageable state complexity and communication overhead between user and kernel space. Thus, HyQUIC supports limited user-space extensibility at frame-level to minimize the communication overhead.
The kernel part of this implementation is based on the "QUIC in Linux Kernel" implementation by Xin Long.
- Required OS: GNU/Linux
- Install Boost C++ libraries (tested with version 1.84.0)
- Install the following package dependencies:
make autoconf automake libtool pkg-config gnutls-dev linux-headers-$(uname -r) libkeyutils-dev gcc g++ cmake
- Inside the
kernel/
directory, runsudo ./build.sh -c -t
- Inside the
user/
directory, build project viacmake
- Navigate to
user/tests/keys/
, inside this directory, runsudo ./ca_cert_pkey.sh
- Run tests via
ctest
(sudo required)