Awesome Go

Networking

100+ libraries in this category

fasthttp

Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http

23,481NetworkingNetworking
webrtc

A pure Go implementation of the WebRTC API

16,834NetworkingNetworking
cloudflared

Cloudflare Tunnel client (formerly Argo Tunnel)

16,137NetworkingNetworking
resty

Simple HTTP and REST client for Go inspired by Ruby rest-client

11,814NetworkingHTTP Clients
quic-go

An implementation of the QUIC protocol in pure Go

11,808NetworkingNetworking
gnet

`gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go

11,249NetworkingNetworking
dns

Go library for working with DNS

8,782NetworkingNetworking
gopacket

Go library for packet processing with libpcap bindings

6,793NetworkingNetworking
GoProxy

A library to create a customized HTTP/HTTPS proxy server using Go

6,765NetworkingNetworking
tun2socks

A pure go implementation of tun2socks powered by [gVisor](https://gvisor.dev/) TCP/IP stack

5,532NetworkingNetworking
req

Simple Go HTTP client with Black Magic (Less code and More efficiency)

4,866NetworkingHTTP Clients
netpoll

A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance

4,607NetworkingNetworking
kcp-go

KCP - Fast and Reliable ARQ Protocol

4,553NetworkingNetworking
ssh

Higher-level API for building SSH servers (wraps crypto/ssh)

4,181NetworkingNetworking
HTTPLab

HTTPLabs let you inspect HTTP requests and forge responses

4,141NetworkingNetworking
gobgp

BGP implemented in the Go Programming Language

4,116NetworkingNetworking
fortio

Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC

3,737NetworkingNetworking
heimdall

An enhanced http client with retry and hystrix capabilities

2,777NetworkingHTTP Clients
nbio

Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use

2,754NetworkingNetworking
go-retryablehttp

Retryable HTTP client in Go

2,353NetworkingHTTP Clients
grequests

A Go "clone" of the great and famous Requests library

2,180NetworkingHTTP Clients
water

Simple TUN/TAP library

2,168NetworkingNetworking
tls-client

net/http.Client like HTTP Client with options to select specific client TLS Fingerprints to use for requests

1,888NetworkingHTTP Clients
surf

Advanced HTTP client with HTTP/1.1, HTTP/2, HTTP/3 (QUIC), SOCKS5 proxy support and browser-grade TLS fingerprinting

1,841NetworkingHTTP Clients
go-getter

Go library for downloading files or directories from various sources using a URL

1,826NetworkingNetworking
gws

High-Performance WebSocket Server & Client With AsyncIO Supporting

1,802NetworkingNetworking
gev

gev is a lightweight, fast non-blocking TCP network library based on Reactor mode

1,773NetworkingNetworking
sling

Sling is a Go HTTP client library for creating and sending API requests

1,720NetworkingHTTP Clients
requests

HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools

1,671NetworkingHTTP Clients
sftp

Package sftp implements the SSH File Transfer Protocol as described in <https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt>

1,663NetworkingNetworking
grab

Go package for managing file downloads

1,485NetworkingNetworking
NFF-Go

Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF)

1,416NetworkingNetworking
ftp

Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959)

1,403NetworkingNetworking
mdns

Simple mDNS (Multicast DNS) client/server library in Golang

1,390NetworkingNetworking
gentleman

Full-featured plugin-driven HTTP client library

1,135NetworkingHTTP Clients
sdns

A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy

1,085NetworkingNetworking
gmqtt

Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1

1,050NetworkingNetworking
vssh

Go library for building network and server automation over SSH protocol

991NetworkingNetworking
cidranger

Fast IP to CIDR lookup for Go

967NetworkingNetworking
gaio

High performance async-io networking for Golang in proactor mode

912NetworkingNetworking
easytcp

A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful

819NetworkingNetworking
go-stun

Go implementation of the STUN client (RFC 3489 and RFC 5389)

721NetworkingNetworking
lhttp

Powerful websocket framework, build your IM server more easily

689NetworkingNetworking
peerdiscovery

Pure Go library for cross-platform local peer discovery using UDP multicast

676NetworkingNetworking
pester

Go HTTP client calls with retries, backoff, and concurrency

654NetworkingHTTP Clients
gotcp

Go package for quickly writing tcp applications

509NetworkingNetworking
stun

Go implementation of RFC 5389 STUN protocol

492NetworkingNetworking
gopcap

Go wrapper for libpcap

489NetworkingNetworking
ftpserverlib

Fully featured FTP server library

480NetworkingNetworking
winrm

Go WinRM client to remotely execute commands on Windows machines

479NetworkingNetworking
azuretls-client

An easy-to-use HTTP client 100% in Go to spoof TLS/JA3 and HTTP2 fingerprint

471NetworkingHTTP Clients
go-cleanhttp

Get easily stdlib HTTP client, which does not share any state with other clients

446NetworkingHTTP Clients
raw

Package raw enables reading and writing data at the device driver level for a network interface.

425NetworkingLibraries for working with various layers of the network.
arp

Package arp implements the ARP protocol, as described in RFC 826

391NetworkingNetworking
dnsmonster

Passive DNS Capture/Monitoring Framework

360NetworkingNetworking
request

HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency

295NetworkingHTTP Clients
ethernet

Package ethernet implements marshaling and unmarshalling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags

288NetworkingNetworking
nodepass

A secure, efficient TCP/UDP tunneling solution that delivers fast, reliable access across network restrictions using pre-established TCP/QUIC/WebSocket or HTTP/2 connections

288NetworkingNetworking
gNxI

A collection of tools for Network Management that use the gNMI and gNOI protocols

287NetworkingNetworking
hedge

Adaptive hedged requests for Go. Cuts p99 latency with zero configuration, based on Google's "The Tail at Scale" paper

286NetworkingHTTP Clients
buffstreams

Streaming protocolbuffer data over TCP made easy

255NetworkingNetworking
psql-wire

PostgreSQL server wire protocol. Build your own server and start serving connections.

241NetworkingNetworking
jazigo

Jazigo is a tool written in Go for retrieving configuration for multiple network devices

230NetworkingNetworking
utp

Go uTP micro transport protocol implementation

179NetworkingNetworking
bart

Package bart provides a Balanced-Routing-Table (BART) for very fast IP to CIDR lookups and more

166NetworkingNetworking
tcpack

tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program

164NetworkingNetworking
xtcp

TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol

160NetworkingNetworking
canopus

CoAP Client/Server implementation (RFC 7252)

156NetworkingNetworking
sslb

It's a Super Simples Load Balancer, just a little project to achieve some kind of performance

152NetworkingNetworking
iplib

Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html)

151NetworkingNetworking
fast-shot

Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client

126NetworkingHTTP Clients
gldap

gldap provides an ldap server implementation and you provide handlers for its ldap operations

122NetworkingNetworking
event

Simple I/O event notification library written in Golang

119NetworkingNetworking
natiu-mqtt

A dead-simple, non-allocating, low level implementation of MQTT well suited for embedded systems

106NetworkingNetworking
go-powerdns

PowerDNS API bindings for Golang

105NetworkingNetworking
go-zoox/fetch

A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API

90NetworkingHTTP Clients
go-otelroundtripper

Go http.RoundTripper that emits open telemetry metrics for HTTP requests

88NetworkingHTTP Clients
go-http-client

Make http calls simply and easily

84NetworkingHTTP Clients
ether

Cross-platform Go package for sending and receiving ethernet frames

82NetworkingNetworking
fullproxy

A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols

81NetworkingNetworking
dhcp6

Package dhcp6 implements a DHCPv6 server, as described in RFC 3315

80NetworkingNetworking
packet

Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.

79NetworkingLibraries for working with various layers of the network.
fwdctl

A simple and intuitive CLI to manage IPTables forwards in your Linux server

72NetworkingNetworking
portproxy

Simple TCP proxy which adds CORS support to API's which don't support it

58NetworkingNetworking
httpretry

Enriches the default go HTTP client with retry functionality

56NetworkingHTTP Clients
linkio

Network link speed simulation for Reader/Writer interfaces

53NetworkingNetworking
rq

A nicer interface for golang stdlib HTTP client

52NetworkingHTTP Clients
axios4go

A Go HTTP client library inspired by Axios, providing a simple and intuitive API for making HTTP requests

39NetworkingHTTP Clients
httpproxy

HTTP proxy handler and dialer

32NetworkingNetworking
go-multiproxy

Library for making HTTP requests through a pool of proxies offering fault tolerance, load balancing, automatic retries, cookie management, and more, via http.Get/Post replacement or http.Client RoundTripper drop-in

30NetworkingNetworking
publicip

Package publicip returns your public facing IPv4 address (internet egress)

29NetworkingNetworking
graval

Experimental FTP server framework

28NetworkingNetworking
go-ipmux

A library for Multiplexing HTTP requests based on multiple Source IPs

28NetworkingHTTP Clients
gnet

`gnet` is a high-performance networking framework,especially for game servers

27NetworkingNetworking
go-req

Declarative golang HTTP client

24NetworkingHTTP Clients
expose

Lightweight, open-source secure tunneling tool to expose local servers to the internet

22NetworkingNetworking
goshark

Package goshark use tshark to decode IP packet and create data struct to analyse packet

17NetworkingNetworking
llb

It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response

16NetworkingNetworking
go-sse

Go client and server implementation of HTML server-sent events

15NetworkingNetworking
nethawk

Terminal UI for real-time network traffic capture, analysis, and attack detection with JSON output mode

15NetworkingNetworking