Go Networking

Open-source Go projects categorized as Networking | Edit details

Top 23 Go Networking Projects

  • GitHub repo fasthttp

    Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

    Project mention: Gerenciamento de dependência em Go (Go Modules) | dev.to | 2021-09-26
  • GitHub repo kcptun

    A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。KCPプロトコルに基づく安全なトンネル。KCP 프로토콜을 기반으로 하는 보안 터널입니다。

    Project mention: Looking for lowest-latency WebSocket server/library | reddit.com/r/golang | 2021-05-08
  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo cilium

    eBPF-based Networking, Security, and Observability

    Project mention: Container security best practices: Ultimate guide | news.ycombinator.com | 2021-10-13
  • GitHub repo quic-go

    A QUIC implementation in pure go

    Project mention: High Performance HTTP/TCP Thoughts | reddit.com/r/golang | 2021-10-11

    Google's solution to this is QUIC. There's a few implementations in Go (e.g.).

  • GitHub repo dns

    DNS library in Go

    Project mention: DNS Library in Go | news.ycombinator.com | 2021-04-30
  • GitHub repo httpstat

    It's like curl -v, with colours.

  • GitHub repo gnet

    🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。

    Project mention: Goroutines Are Not Significantly Lighter Than Threads | news.ycombinator.com | 2021-03-12

    Go does not forces you to do any of that: https://github.com/panjf2000/gnet

  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. 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.

  • GitHub repo evio

    Fast event-loop networking for Go

    Project mention: Goroutines Are Not Significantly Lighter Than Threads | news.ycombinator.com | 2021-03-12
  • GitHub repo gopacket

    Provides packet processing capabilities for Go

    Project mention: networking - getting route and interface for a destination | reddit.com/r/golang | 2021-09-06

    https://pkg.go.dev/github.com/google/gopacket/routing - Linux only and not working correctly and not actively maintained

  • GitHub repo cni

    Container Network Interface - networking for Linux containers

    Project mention: Kubernetes Network Policies: A Practitioner's Guide | dev.to | 2021-09-09

    CNI type plugins follow the Container Network Interface spec and are used by the community to create advanced featured plugins. On the other hand, Kubenet utilizes bridge and host-local CNI plugins and has basic features.

  • GitHub repo HTTPLab

    The interactive web server

  • GitHub repo kcp-go

    A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC

    Project mention: Do you use TCP and UDP together in your multiplayer games? | reddit.com/r/gamedev | 2021-10-15

    I guess I should look into something like this before I get much further. It sounds exactly like what you were recommending. I do enjoy reinventing the wheel sometimes, but it is usually not successful lol.

  • GitHub repo emitter-io

    High performance, distributed and low latency publish-subscribe platform.

  • GitHub repo kubefwd

    Bulk port forwarding Kubernetes services for local development.

    Project mention: Using Telepresence 2 for Kubernetes debugging and local development | dev.to | 2021-04-15

    Kubefwd works similar to Telepresence by making your local environment think it is inside the cluster. The networking tunnel is one direction only. Telepresence is much smarter as it also makes the other cluster applications think that your local app is inside the same cluster. So with Kubefwd you only get 50% of what basic Telepresence offers. Telepresence also has volume mounting support for more advanced scenarios.

  • GitHub repo kuma

    🐻 The Universal Service Mesh. CNCF Sandbox Project.

    Project mention: Powering Kubernetes in the Cloud with Kuma Service Mesh | dev.to | 2021-08-16

    Another important change to make is that when you create the cluster, change the Nodes in the "Default pool" to use the COS (not COS_CONTAINERD) image type. There are some underlying issues when using Kuma with GKE, as noted in this GitHub issue, and this is the currently recommended workaround. Otherwise, you will hit pod initializing issues that affect certificate provisioning.

  • GitHub repo gobgp

    BGP implemented in the Go Programming Language

    Project mention: lab env getting the full route table. | reddit.com/r/networking | 2021-07-17

    Inject it into GoBGP: https://github.com/osrg/gobgp/blob/master/docs/sources/mrt.md

  • GitHub repo ssh

    Easy SSH servers in Golang

  • GitHub repo fortio

    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.

  • GitHub repo heimdall

    An enhanced HTTP client for Go (by gojek)

    Project mention: Any http client framework? | reddit.com/r/golang | 2021-08-31
  • GitHub repo nano

    Lightweight, facility, high performance golang based game server framework

    Project 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 [0] 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.

    [0] https://github.com/lonng/nano

  • GitHub repo mqttPaho

    Project mention: Are websockets right for this? | reddit.com/r/golang | 2021-04-27

    I suggest PubSub with queue persistence, so https://github.com/eclipse/paho.mqtt.golang with https://mosquitto.org/ as broker. Mosquitto also supports websockets interface and can be run over TLS.

  • GitHub repo hubble

    Hubble - Network, Service & Security Observability for Kubernetes using eBPF

    Project mention: Kubernetes cluster diagram | reddit.com/r/devops | 2021-02-06

    CNI plugins like Cilium

  • GitHub repo gobetween

    :cloud: Modern & minimalistic load balancer for the Сloud era

    Project mention: HashiCorp Consul: What's the catch? | reddit.com/r/devops | 2021-09-04

    HAProxy, Traefik, FabioLB, gobetween, and F5 BIG-IP also support native integrations with Consul for service discovery / service mesh.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-10-15.

Index

What are some of the best open-source Networking projects in Go? This list will help you:

Project Stars
1 fasthttp 16,199
2 kcptun 12,602
3 cilium 9,332
4 quic-go 5,860
5 dns 5,795
6 httpstat 5,787
7 gnet 5,267
8 evio 5,087
9 gopacket 4,429
10 cni 3,778
11 HTTPLab 3,726
12 kcp-go 3,100
13 emitter-io 3,056
14 kubefwd 2,633
15 kuma 2,444
16 gobgp 2,296
17 ssh 2,165
18 fortio 2,091
19 heimdall 2,076
20 nano 1,835
21 mqttPaho 1,750
22 hubble 1,636
23 gobetween 1,612
Find remote jobs at our new job board 99remotejobs.com. There are 34 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com