Top 23 Go Networking Projects
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/httpProject mention: To Go with Golang | dev.to | 2021-02-05
I went with fasthttp, which provides high performance, zero memory allocations in hot paths and Up to 10x faster than net/http for a large throughput service. Go provides out of the box http support but for a beginner, it felt much easier to go with a framework, thereby ended up using fiber.
A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。KCPプロトコルに基づく安全なトンネル。KCP 프로토콜을 기반으로 하는 보안 터널입니다。
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
eBPF-based Networking, Security, and ObservabilityProject mention: Gopher Gold #20 - Wed Nov 18 2020 | dev.to | 2020-11-17
cilium/cilium (Go): eBPF-based Networking, Security, and Observability
DNS library in GoProject mention: Go 1.16 will make system calls through Libc on OpenBSD | news.ycombinator.com | 2021-02-01
Had a similar problem a couple years ago where I needed to use alternative DNS libraries to troubleshoot issues in a company's infrastructure.
Golang's rules for what implementation to use are found here: https://golang.org/pkg/net/#hdr-Name_Resolution
A really solid alternative DNS client implementation can be found here: https://github.com/miekg/dns. Real easy to read and vet compared to a few other libraries I ran into when working on this problem.
It's like curl -v, with colours.
A QUIC implementation in pure goProject mention: QUIC much easier to fingerprint than HTTPS | news.ycombinator.com | 2021-01-30
As you know from carefully reading the paper, it states that they cloned the sites with HTrack and served them on their LAN with "Caddy Server2". Perhaps then we could guess that the version of QUIC they tested is the version of QUIC that Caddy is using: https://github.com/lucas-clemente/quic-go (v0.19.3)
Provides packet processing capabilities for Go
🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。
The interactive web server
Container Network Interface - networking for Linux containersProject mention: Infrastructure Engineering — Deployment Strategies | dev.to | 2021-02-13
But if all of these are not an issue, then Containers and an orchestration system like Kubernetes can always take care of workload portability especially with OCI now in place for containers and CSI, CNI, CRI, SMI for storage, networking, runtime and service mesh respectively creating a healthy standards based ecosystem for all thereby enabling workload portability without lock-in since for a workload to be truly portable, all the underlying resources should be portable without any/very limited changes.
A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC
High performance, distributed and low latency publish-subscribe platform.
Bulk port forwarding Kubernetes services for local development.Project mention: kubefwd tool to bulk port forwarding #Kubernetes services for local development. | reddit.com/r/kubernetes | 2021-01-13
For anyone that doesn't want to open youtube for the link to github: https://github.com/txn2/kubefwd
BGP implemented in the Go Programming Language
🐻 The Universal Service Mesh. CNCF Sandbox Project. (by Kong)Project mention: Service Mesh - Introduction | dev.to | 2021-01-31
Kuma Kuma, from Kong, prides itself on being a usable service mesh alternative. Kuma is a platform-agnostic control plane built on Envoy. Kuma provides networking features to secure, observe, route, and enhance connectivity between services. Kuma supports Kubernetes in addition to virtual machines.
Easy SSH servers in Golang
Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.
An enhanced HTTP client for Go (by gojek)
Lightweight, facility, high performance golang based game server frameworkProject mention: New ‘Action Roguelike’ C++ Project on GitHub | news.ycombinator.com | 2021-01-16
Couldn't you use just a vanilla Golang (or any other language) microservice for all of this? If you know what you are doing you can have a bulletproof basic service with all of the above up and running in no time, just add your game logic. Most of your requirements are part and parcel of any modern commercial Docker microservice. Never mind that such frameworks already exist, e.g. nano  specifically designed for games.
Scalability is also not an issue. Number of simultaneous players and objects is limited by bandwidth and latency only. There are certainly no barriers to handling multi-million entity databases on any modern server. You're really only limited by how much data you can push out to your users within an update tick. And of course by how much money you're willing to pay for back end compute capacity on an ongoing basis. But those costs are very low these days, especially if you have dedicated servers rather then AWS/Google/Azure.
I think perhaps the issue is not so much that frameworks don't exist, but rather that no single framework has achieved popularity in the game design community. The indie crowd is not likely to want to, or afford to, run servers for years and years, so the demand is not there. The triple-A studios roll their own.
:cloud: Modern & minimalistic load balancer for the Сloud eraProject mention: What is a Service Mesh - youtube by HashiCorp using Consul | reddit.com/r/LXD | 2021-02-18
Hubble - Network, Service & Security Observability for Kubernetes using eBPFProject mention: Kubernetes cluster diagram | reddit.com/r/devops | 2021-02-06
CNI plugins like Cilium
A simple TUN/TAP library written in native Go.
What are some of the best open-source Networking projects in Go? This list will help you: