dwnx (pronounced "down-mix") is a QMux implementation in C.
It closely follows the API design of the original QUIC implementation ngtcp2.
Online documentation is available.
The libdwnx C library itself does not depend on any external libraries. It requires a C11 compiler to build. The example client, and server are written in C++23, and should compile with the modern C++ compilers.
The following packages are required to configure the build system:
- pkg-config >= 0.20
- autoconf
- automake
- autotools-dev
- libtool
To build sources under the examples directory, libev, a TLS library (aws-lc or OpenSSL), and nghttp3 are required:
$ git clone --recursive https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ make -j$(nproc) check
$ make install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/dwnx
$ cd dwnx
$ autoreconf -i
$ # For Mac users who have installed libev with MacPorts, append
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig
$ make -j$(nproc) checkThe MIT License
Copyright (c) 2026 dwnx contributors