All Projects → lucas-clemente → Quic Go

lucas-clemente / Quic Go

Licence: mit
A QUIC implementation in pure go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Quic Go

Quiche
🥧 Savoury implementation of the QUIC transport protocol and HTTP/3
Stars: ✭ 5,481 (-9.93%)
Mutual labels:  protocol, quic, http3
quic-py
QUIC protocol implementation in python
Stars: ✭ 38 (-99.38%)
Mutual labels:  quic, quic-server, quic-client
xquic
XQUIC Library released by Alibaba is a cross-platform implementation of QUIC and HTTP/3 protocol.
Stars: ✭ 943 (-84.5%)
Mutual labels:  protocol, quic, http3
Lsquic
LiteSpeed QUIC and HTTP/3 Library
Stars: ✭ 727 (-88.05%)
Mutual labels:  protocol, quic
Http3 Explained
A document describing the HTTP/3 and QUIC protocols
Stars: ✭ 1,860 (-69.43%)
Mutual labels:  quic, http3
Ngtcp2
ngtcp2 project is an effort to implement IETF QUIC protocol
Stars: ✭ 589 (-90.32%)
Mutual labels:  protocol, quic
Algernon
🎩 Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support
Stars: ✭ 1,880 (-69.1%)
Mutual labels:  quic, http3
Quinn
Async-friendly QUIC implementation in Rust
Stars: ✭ 1,859 (-69.45%)
Mutual labels:  protocol, quic
Pquic
The PQUIC implementation, a framework that enables QUIC clients and servers to dynamically exchange protocol plugins that extend the protocol on a per-connection basis
Stars: ✭ 63 (-98.96%)
Mutual labels:  protocol, quic
Msquic
Cross-platform, C implementation of the IETF QUIC protocol.
Stars: ✭ 2,501 (-58.9%)
Mutual labels:  protocol, quic
docker-nginx-http3
Docker image for Nginx + HTTP/3 powered by Quiche
Stars: ✭ 19 (-99.69%)
Mutual labels:  quic, http3
gost
GO Simple Tunnel - a simple tunnel written in golang
Stars: ✭ 154 (-97.47%)
Mutual labels:  quic, http3
Kcp
⚡ KCP - A Fast and Reliable ARQ Protocol
Stars: ✭ 10,473 (+72.11%)
Mutual labels:  protocol, quic
Base Drafts
Internet-Drafts that make up the base QUIC specification
Stars: ✭ 1,270 (-79.13%)
Mutual labels:  protocol, quic
Quic.net
A .NET C# Implementation of QUIC protocol - Google's experimental transport layer.
Stars: ✭ 173 (-97.16%)
Mutual labels:  protocol, quic
Nghttp2
nghttp2 - HTTP/2 C Library and tools
Stars: ✭ 3,868 (-36.43%)
Mutual labels:  quic, http3
Flatcc
FlatBuffers Compiler and Library in C for C
Stars: ✭ 434 (-92.87%)
Mutual labels:  protocol
Fatt
FATT /fingerprintAllTheThings - a pyshark based script for extracting network metadata and fingerprints from pcap files and live network traffic
Stars: ✭ 490 (-91.95%)
Mutual labels:  quic
Dttableviewmanager
Protocol-oriented UITableView management, powered by generics and associated types.
Stars: ✭ 424 (-93.03%)
Mutual labels:  protocol
Deimosc2
DeimosC2 is a Golang command and control framework for post-exploitation.
Stars: ✭ 423 (-93.05%)
Mutual labels:  quic

A QUIC implementation in pure Go

PkgGoDev Travis Build Status CircleCI Build Status Windows Build Status Code Coverage

quic-go is an implementation of the QUIC protocol, RFC 9000 protocol in Go. In addition to RFC 9000, it currently implements the IETF QUIC draft-29. Support for draft-29 will eventually be dropped, as it is phased out of the ecosystem.

Guides

We currently support Go 1.16.x and Go 1.17.x.

Running tests:

go test ./...

QUIC without HTTP/3

Take a look at this echo example.

Usage

As a server

See the example server. Starting a QUIC server is very similar to the standard lib http in go:

http.Handle("/", http.FileServer(http.Dir(wwwDir)))
http3.ListenAndServeQUIC("localhost:4242", "/path/to/cert/chain.pem", "/path/to/privkey.pem", nil)

As a client

See the example client. Use a http3.RoundTripper as a Transport in a http.Client.

http.Client{
  Transport: &http3.RoundTripper{},
}

Projects using quic-go

Project Description Stars
algernon Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support GitHub Repo stars
caddy Fast, multi-platform web server with automatic HTTPS GitHub Repo stars
go-ipfs IPFS implementation in go GitHub Repo stars
nextdns NextDNS CLI client (DoH Proxy) GitHub Repo stars
syncthing Open Source Continuous File Synchronization GitHub Repo stars
traefik The Cloud Native Application Proxy GitHub Repo stars
v2ray-core A platform for building proxies to bypass network restrictions GitHub Repo stars

Contributing

We are always happy to welcome new contributors! We have a number of self-contained issues that are suitable for first-time contributors, they are tagged with help wanted. If you have any questions, please feel free to reach out by opening an issue or leaving a comment.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].