Networking - Awesome Go
Libraries for working with various layers of the network.
- arp - Package arp implements the ARP protocol, as described in RFC 826.
- buffstreams - Streaming protocolbuffer data over TCP made easy.
- canopus - CoAP Client/Server implementation (RFC 7252).
- cidranger - Fast IP to CIDR lookup for Go.
- cloudflared - Cloudflare Tunnel client (formerly Argo Tunnel).
- dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.
- dns - Go library for working with DNS.
- dnsmonster - Passive DNS Capture/Monitoring Framework.
- 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.
- ether - Cross-platform Go package for sending and receiving ethernet frames.
- ethernet - Package ethernet implements marshaling and unmarshalling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.
- event - Simple I/O event notification library written in Golang.
- fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
- 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.
- ftp - Package ftp implements a FTP client as described in RFC 959.
- ftpserverlib - Fully featured FTP server library.
- fullproxy - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols.
- fwdctl - A simple and intuitive CLI to manage IPTables forwards in your Linux server.
- gaio - High performance async-io networking for Golang in proactor mode.
- gev - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode.
- gldap - gldap provides an ldap server implementation and you provide handlers for its ldap operations.
- gmqtt - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1.
- gnet - gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.
- gnet - gnet is a high-performance networking framework,especially for game servers.
- gNxI - A collection of tools for Network Management that use the gNMI and gNOI protocols.
- go-getter - Go library for downloading files or directories from various sources using a URL.
- 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
- go-powerdns - PowerDNS API bindings for Golang.
- go-sse - Go client and server implementation of HTML server-sent events.
- go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389).
- gobgp - BGP implemented in the Go Programming Language.
- gopacket - Go library for packet processing with libpcap bindings.
- gopcap - Go wrapper for libpcap.
- goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.
- gosnmp - Native Go library for performing SNMP actions.
- gotcp - Go package for quickly writing tcp applications.
- grab - Go package for managing file downloads.
- graval - Experimental FTP server framework.
- gws - High-Performance WebSocket Server & Client With AsyncIO Supporting .
- HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
- httpproxy - HTTP proxy handler and dialer.
- iplib - Library for working with IP addresses (net.IP, net.IPNet), inspired by python ipaddress and ruby ipaddr
- jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.
- kcp-go - KCP - Fast and Reliable ARQ Protocol.
- kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
- lhttp - Powerful websocket framework, build your IM server more easily.
- linkio - Network link speed simulation for Reader/Writer interfaces.
- 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.
- mdns - Simple mDNS (Multicast DNS) client/server library in Golang.
- mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
- natiu-mqtt - A dead-simple, non-allocating, low level implementation of MQTT well suited for embedded systems.
- 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.
- net - This repository holds supplementary Go networking libraries.
- netpoll - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.
- NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
- packet - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.
- peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast.
- portproxy - Simple TCP proxy which adds CORS support to API's which don't support it.
- psql-wire - PostgreSQL server wire protocol. Build your own server and start serving connections..
- publicip - Package publicip returns your public facing IPv4 address (internet egress).
- quic-go - An implementation of the QUIC protocol in pure Go.
- raw - Package raw enables reading and writing data at the device driver level for a network interface.
- sdns - A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy.
- sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.
- ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
- sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance.
- stun - Go implementation of RFC 5389 STUN protocol.
- tcp_server - Go library for building tcp servers faster.
- tcpack - tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program.
- tspool - A TCP Library use worker pool to improve performance and protect your server.
- tun2socks - A pure go implementation of tun2socks powered by gVisor TCP/IP stack.
- utp - Go uTP micro transport protocol implementation.
- vssh - Go library for building network and server automation over SSH protocol.
- water - Simple TUN/TAP library.
- webhooked - A webhook receiver on steroids: handle, secure, format and store a Webhook payload has never been easier.
- webrtc - A pure Go implementation of the WebRTC API.
- winrm - Go WinRM client to remotely execute commands on Windows machines.
- xtcp - TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol.
- fast-shot - Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client.
- gentleman - Full-featured plugin-driven HTTP client library.
- go-cleanhttp - Get easily stdlib HTTP client, which does not share any state with other clients.
- go-http-client - Make http calls simply and easily.
- go-otelroundtripper - Go http.RoundTripper that emits open telemetry metrics for HTTP requests.
- go-req - Declarative golang HTTP client.
- go-retryablehttp - Retryable HTTP client in Go.
- go-zoox/fetch - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API.
- grequests - A Go "clone" of the great and famous Requests library.
- heimdall - An enhanced http client with retry and hystrix capabilities.
- httpretry - Enriches the default go HTTP client with retry functionality.
- pester - Go HTTP client calls with retries, backoff, and concurrency.
- req - Simple Go HTTP client with Black Magic (Less code and More efficiency).
- request - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency.
- 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.
- resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.
- rq - A nicer interface for golang stdlib HTTP client.
- sling - Sling is a Go HTTP client library for creating and sending API requests.