Playing with QUIC

Choose a QUIC code source.

The instructions below are for building QUIC code from the chromium code base. This is pretty much guaranteed to work on any platform Chrome supports, and has extensive troubleshooting documents should you run into problems. If you prefer not checking out all of chrome, you can try the quick and dirty proto-quic lib on github. This is a clone of the chrome code, stripping most of the unnecessary dependencies so is far faster to check out and build, but is not expected to extend to the full chrome platform set so may simply not build on your platform of choice.

Build the QUIC client and server

A sample server and client implementation are provided in Chromium. To use these you should first have checked out the Chromium source, and then build the binaries:

ninja -C out/Debug quic_server quic_client

Prepe test data from www.example.org

Download a copy of www.example.org, which we will serve locally using the quic_server binary:

Generate certificates

In order to run the server, you will need a valid certificate, and a private key in pkcs8 format. If you don't have one, there are scripts you can use to generate them:

cd net/tools/quic/certs

./generate-certs.sh

cd -

In addition to the server's certificate and public key, this script will also generate a CA certificate (net/tools/quic/certs/out/2048-sha256-root.pem) which you will need to add to your OS's root certificate store in order for it to be trusted during certificate validate. For doing this on linux, please see these instructions.