quic-d ~main

Implementation of the QUIC protocol in Dlang

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


dub CI codecov

quic-d is an implementation of the QUIC protocol in Dlang.

Development environment


The dependencies above can either be installed manually (in any way you prefer) or automatically via Nix.


This project uses a Nix_Flake-based development shell to specify the complete list of dependencies and precisely pin their versions. Note that this includes programs and libraries like the DMD and LDC D compilers, OpenSSL, and cURL, however D library dependencies are still managed by Dub (a future integration between Dub and Nix may allow Nix to manage all dependencies).

Getting started

Enter the dev shell
  1. Install the Nix package manager.
  2. Enable flakes.
  3. Optionally, install and enable Direnv, see below.
  4. Clone the project and enter the repo:

    git clone https://github.com/dlang-community/quic-d && cd quic-d

  5. At this point, if you have direnv enabled (as specified in step 3), the Nix development shell should have been automatically activated. If you, however, skipped this step, you will need to manually enter the shell like so:

    nix develop

Build the project and run the test suite

Assuming you have already entered the dev shell, you can use standard Dub commands to work on the project

  1. Building the project:

    dub build

  2. Running the test suite:

    dub test


For additional convenience, we recommend using Direnv, so that the development shell will get automatically activated without the need for running nix develop each time one wants to work on the project.

Setup direnv
  1. Install direnv

    nix-env -iA nixpkgs.direnv

  2. Hook direnv to your shell.

  3. Allow direnv to be used when inside the quic-d repo:

    direnv allow . (replace . with the location of the repo on your computer if needed)

How it works

This repo contains an .envrc file which includes an integration between nix develop and direnv (implemented by nix-direnv). The way this works from user's perspective is that each time you cd (or pushd) into the repo folder (or any nested dir), direnv will detect that and load the nearest .envrc file. Then the .envrc file in this repo will activate the nix dev shell in a subshell and then carry-over the environment variables to the current shell. This only works if direnv is integrated with the current shell of the user and if they have allowed the repo's .envrc file to be loaded (this is opt-in for security reasons.)

  • Vlăduț Chicoș
0.0.0 2022-Sep-20
~main 2023-Mar-16
~devel-stream 2022-Dec-13
~devel-session 2023-Jan-24
Show all 4 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 16 downloads total

Short URL: