Awesome Go

Networking

100+ libraries in this category

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.
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.
arp

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

NetworkingNetworking
buffstreams

Streaming protocolbuffer data over TCP made easy

NetworkingNetworking
canopus

CoAP Client/Server implementation (RFC 7252)

NetworkingNetworking
dnsmonster

Passive DNS Capture/Monitoring Framework

NetworkingNetworking
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

NetworkingNetworking
ether

Cross-platform Go package for sending and receiving ethernet frames

NetworkingNetworking
ethernet

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

NetworkingNetworking
gldap

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

NetworkingNetworking
gmqtt

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

NetworkingNetworking
gnet

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

NetworkingNetworking
gnet

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

NetworkingNetworking
gNxI

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

NetworkingNetworking
go-getter

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

NetworkingNetworking
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

NetworkingNetworking
go-powerdns

PowerDNS API bindings for Golang

NetworkingNetworking
gopacket

Go library for packet processing with libpcap bindings

NetworkingNetworking
gopcap

Go wrapper for libpcap

NetworkingNetworking
goshark

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

NetworkingNetworking
gosnmp

Native Go library for performing SNMP actions

NetworkingNetworking
grab

Go package for managing file downloads

NetworkingNetworking
jazigo

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

NetworkingNetworking
kcp-go

KCP - Fast and Reliable ARQ Protocol

NetworkingNetworking
kcptun

Extremely simple & fast udp tunnel based on KCP protocol

NetworkingNetworking
lhttp

Powerful websocket framework, build your IM server more easily

NetworkingNetworking
linkio

Network link speed simulation for Reader/Writer interfaces

NetworkingNetworking
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

NetworkingNetworking
natiu-mqtt

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

NetworkingNetworking
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

NetworkingNetworking
NFF-Go

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

NetworkingNetworking
peerdiscovery

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

NetworkingNetworking
portproxy

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

NetworkingNetworking
sdns

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

NetworkingNetworking
sftp

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

NetworkingNetworking
tspool

A TCP Library use worker pool to improve performance and protect your server

NetworkingNetworking
water

Simple TUN/TAP library

NetworkingNetworking
winrm

Go WinRM client to remotely execute commands on Windows machines

NetworkingNetworking
xtcp

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

NetworkingNetworking
fast-shot

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

NetworkingHTTP Clients
grequests

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

NetworkingHTTP Clients
heimdall

An enhanced http client with retry and hystrix capabilities

NetworkingHTTP Clients
req

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

NetworkingHTTP Clients
request

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

NetworkingHTTP Clients
bart

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

NetworkingNetworking
cdns

Change DNS servers effortlessly via terminal

NetworkingNetworking
cidranger

Fast IP to CIDR lookup for Go

NetworkingNetworking
cloudflared

Cloudflare Tunnel client (formerly Argo Tunnel)

NetworkingNetworking
dhcp6

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

NetworkingNetworking
dns

Go library for working with DNS

NetworkingNetworking
event

Simple I/O event notification library written in Golang

NetworkingNetworking
fasthttp

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

NetworkingNetworking
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

NetworkingNetworking
ftp

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

NetworkingNetworking
ftpserverlib

Fully featured FTP server library

NetworkingNetworking
fullproxy

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

NetworkingNetworking
fwdctl

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

NetworkingNetworking
gaio

High performance async-io networking for Golang in proactor mode

NetworkingNetworking
gev

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

NetworkingNetworking
go-pcaplite

Lightweight live packet capture library with HTTPS SNI extraction

NetworkingNetworking
go-sse

Go client and server implementation of HTML server-sent events

NetworkingNetworking
fibersse

Production-grade Server-Sent Events (SSE) for Fiber v3 with event coalescing, priority lanes, topic wildcards, adaptive throttling, and built-in auth

NetworkingNetworking
go-stun

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

NetworkingNetworking
gobgp

BGP implemented in the Go Programming Language

NetworkingNetworking
GoProxy

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

NetworkingNetworking
gotcp

Go package for quickly writing tcp applications

NetworkingNetworking
graval

Experimental FTP server framework

NetworkingNetworking
gws

High-Performance WebSocket Server & Client With AsyncIO Supporting

NetworkingNetworking
HTTPLab

HTTPLabs let you inspect HTTP requests and forge responses

NetworkingNetworking
httpproxy

HTTP proxy handler and dialer

NetworkingNetworking
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)

NetworkingNetworking
mdns

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

NetworkingNetworking
netpoll

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

NetworkingNetworking
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

NetworkingNetworking
psql-wire

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

NetworkingNetworking
publicip

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

NetworkingNetworking
quic-go

An implementation of the QUIC protocol in pure Go

NetworkingNetworking
ssh

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

NetworkingNetworking
sslb

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

NetworkingNetworking
stun

Go implementation of RFC 5389 STUN protocol

NetworkingNetworking
tcpack

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

NetworkingNetworking
tun2socks

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

NetworkingNetworking
utp

Go uTP micro transport protocol implementation

NetworkingNetworking
vssh

Go library for building network and server automation over SSH protocol

NetworkingNetworking
webrtc

A pure Go implementation of the WebRTC API

NetworkingNetworking
axios4go

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

NetworkingHTTP Clients
azuretls-client

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

NetworkingHTTP Clients
gentleman

Full-featured plugin-driven HTTP client library

NetworkingHTTP Clients
go-cleanhttp

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

NetworkingHTTP Clients
go-http-client

Make http calls simply and easily

NetworkingHTTP Clients
go-ipmux

A library for Multiplexing HTTP requests based on multiple Source IPs

NetworkingHTTP Clients
go-otelroundtripper

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

NetworkingHTTP Clients
go-req

Declarative golang HTTP client

NetworkingHTTP Clients
go-retryablehttp

Retryable HTTP client in Go

NetworkingHTTP Clients
go-zoox/fetch

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

NetworkingHTTP Clients
Grequest

Simple and lightweight golang package for http requests. based on powerful net/http

NetworkingHTTP Clients
httpretry

Enriches the default go HTTP client with retry functionality

NetworkingHTTP Clients
pester

Go HTTP client calls with retries, backoff, and concurrency

NetworkingHTTP 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

NetworkingHTTP Clients
resty

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

NetworkingHTTP Clients