Skip to content

Repository files navigation

dwnx

dwnx (pronounced "down-mix") is a QMux implementation in C.

It closely follows the API design of the original QUIC implementation ngtcp2.

Documentation

Online documentation is available.

Requirements

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:

Build

$ 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) check

License

The MIT License

Copyright (c) 2026 dwnx contributors

About

QMux implementation in C

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages