quic-go alternatives and similar packages
Based on the "Networking" category.
Alternatively, view quic-go alternatives based on common mentions on social networks and blogs.
-
fasthttp
Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http -
gnet
⚡️A high-performance, lightweight, nonblocking, event-loop networking library written in pure Go.🔥 -
mqttPaho
The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets. -
fortio
Load testing library and command line tool and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. -
go-getter
A Go library for downloading files or directories from various sources using a URL. -
sftp
Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. -
gev
gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. -
NFF-Go
Framework for rapid development of performant network functions for cloud and bare-metal. -
vssh
Go library for building network and server automation over SSH protocol. -
peerdiscovery
Pure Go library for cross-platform local peer discovery using UDP multicast. -
raw
Package raw enables reading and writing data at the device driver level for a network interface. -
gmqtt
Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. -
gNxI
A collection of tools for Network Management that use the gNMI and gNOI protocols. -
ethernet
Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. -
jazigo
Jazigo is a tool written in Go for retrieving configuration for multiple network devices. -
xtcp
A TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol. -
sslb
It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. -
nbio
High-performance, non-blocking, event-driven, easy-to-use, least-dependency networking framework written in Go.
Scout APM - Leading-edge performance monitoring starting at $39/month
Do you think we are missing an alternative of quic-go or a related project?
Popular Comparisons
README
A QUIC implementation in pure Go
quic-go is an implementation of the QUIC protocol in Go. It implements the IETF QUIC draft-29, draft-32 and draft-34.
Version compatibility
Since quic-go is under active development, there's no guarantee that two builds of different commits are interoperable. The QUIC version used in the master branch is just a placeholder, and should not be considered stable.
When using quic-go as a library, please always use a tagged release. Only these releases use the official draft version numbers.
Guides
We currently support Go 1.15+, with Go modules support enabled.
Running tests:
go test ./...
QUIC without HTTP/3
Take a look at [this echo example](example/echo/echo.go).
Usage
As a server
See the [example server](example/main.go). 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](example/client/main.go). Use a http3.RoundTripper
as a Transport
in a http.Client
.
http.Client{
Transport: &http3.RoundTripper{},
}
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.