this-is-quic - A document describing the QUIC protocol

  •        9

Get the Web, PDF, or e-book versions on gitbook.com. The contents get updated automatically on every commit to this git repository.

https://daniel.haxx.se/this-is-quic/
https://github.com/bagder/this-is-quic

Tags
Implementation
License
Platform

   




Related Projects

quic-go - A QUIC implementation in pure go

  •    Go

quic-go is an implementation of the QUIC protocol in Go. quic-go is compatible with the current version(s) of Google Chrome and QUIC as deployed on Google's servers. We're actively tracking the development of the Chrome code to ensure compatibility as the protocol evolves. In that process, we're dropping support for old QUIC versions. As Google's QUIC versions are expected to converge towards the IETF QUIC draft, quic-go will eventually implement that draft.

goquic - QUIC support for Go

  •    C

This is a work-in-progress QUIC implementation for Go. This is based on libquic library, which is in turn based on original QUIC implementation on Chromium. QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is very similar to TCP+TLS+SPDY implemented on UDP. Because TCP is implement in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations.

libquic - QUIC, a multiplexed stream transport over UDP

  •    C++

QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is very similar to TCP+TLS+SPDY implemented on UDP. Because TCP is implemented in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations. See Chromium QUIC Page for detailed information.

proto-quic

  •    C++

proto-quic is intended as a standalone library for QUIC.It contains the subset of Chromium code and dependencies required for QUIC so folks can use the Chromium code without depending on all of Chromium. It is intended to be a cross-platform library, but will only support the set (or a strict subset) of platforms which Chromium already supports.


http2-explained - A detailed document explaining and documenting HTTP/2, the successor to the widely popular HTTP/1

  •    CSS

This is a detailed document describing HTTP/2 (RFC 7540), the background, concepts, protocol and something about existing implementations and what the future might hold. The contents are translated into several different languages.

nghttp2 - nghttp2 - HTTP/2 C Library and tools

  •    C++

This is an implementation of the Hypertext Transfer Protocol version 2 in C. The framing layer of HTTP/2 is implemented as a reusable C library. On top of that, we have implemented an HTTP/2 client, server and proxy. We have also developed load test and benchmarking tools for HTTP/2.

Caddy - Fast, cross-platform HTTP/2 web server with automatic HTTPS

  •    Go

Caddy is a general-purpose HTTP/2 web server that serves HTTPS by default. Caddy is fast, easy to use, and makes you more productive.

PyExfil - A Python Package for Data Exfiltration

  •    Python

All requirements can be met with a pip install --user -r requirments.txt. After that the server is easy to execute. Notice that in some cases you might want to use py2exe before delivering the package to the code you want to operate. So recently we have decided to impliment some physical data exfiltration techniques assuming some networks might be airgapped from any internet connectivity. So this is the first one. It will encode a file in several QR codes, display them on the screen one by one and it comes with a decoder to recompile that into the file itself.

Citadel

  •    C

Citadel is a collaboration suite (messaging and groupware). It provides support for Email, Calendaring/Scheduling, Address books, Bulletin boards, Mailing List Server, Instant Messaging, Wiki, Multiple domain support.

dingo - A DNS client in Go that supports Google DNS over HTTPS

  •    Go

A DNS client (stub resolver) implemented in Go for the Google DNS-over-HTTPS. It effectively encrypts all your DNS traffic. It also supports OpenResolve by OpenDNS. The ultimate goal for the project is to provide a secure, caching DNS client that communicates with recursive DNS resolvers over encrypted channels only. For now, it resolves DNS queries over HTTP/2 in independent threads. The plans for future include better caching and support for QUIC.

James - Enterprise Mail Server

  •    Java

James (a.k.a Java Apache Mail Enterprise Server) is a 100% pure Java SMTP and POP3 Mail server, and NNTP News server designed to be a complete and portable enterprise mail/messaging engine solution based on currently available open messaging protocols.

node-http2 - An HTTP/2 client and server implementation for node.js

  •    Javascript

An HTTP/2 (RFC 7540) client and server implementation for node.js. NOTE WELL This package is officially deprecated. As of node 9.0.0, there is an 'http2' package built-in. You should use that one instead.

sower - Sower is a cross platform intelligent transparent proxy solution

  •    Go

The sower is a cross-platform intelligent transparent proxy tool base on DNS solution. The first time you visit a new website, sower will detect if the domain in block list and add it in suggect list. So that, you do not need to care about the rules, sower will handle it in a intelligent way.

sshfs - File system based on the SSH File Transfer Protocol

  •    C

This is a filesystem client based on the SSH File Transfer Protocol. Since most SSH servers already support this protocol it is very easy to set up: i.e. on the server side there's nothing to do. On the client side mounting the filesystem is as easy as logging into the server with ssh. Note, that it's recommended to run it as user, not as root. For this to work the mountpoint must be owned by the user. If the username is different on the host you are connecting to, then use the "username@host:" form. If you need to enter a password sshfs will ask for it (actually it just runs ssh which ask for the password if needed). You can also specify a directory after the ":". The default is the home directory.

ECTP -Encrypted Compressed Transfer Prot

  •    Pascal

ECTP - Encrypted Compressed Transfer Protocol This protocol is similar to HTTP but with commands and features like FTP. The main features are security and compression abilities and the consequent use of one perisistant connection.

Diffable

  •    

Diffable is an F# library that makes it easy and natural to debug and unit-test values belonging to discriminated union types. It provides functions that generate DOT code representing such values as directed graphs, so that any test failures or unexpected behavior can be quic...

armeria - Asynchronous RPC/REST library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC

  •    Java

Visit the official web site for more information.Armeria is an open-source asynchronous RPC/API client/server library built on top of Java 8, Netty 4.1, HTTP/2, Thrift and gRPC. Its primary goal is to help engineers build high-performance asynchronous microservices that use HTTP/2 as a session layer protocol.