Go Networking

Open-source Go projects categorized as Networking

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: Best Web Frameworks of Golang in 2021 | reddit.com/r/golang | 2021-06-18

    It uses fasthttp as its router. Fasthttp does not implement http2 https://github.com/valyala/fasthttp/issues/144

  • 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
  • GitHub repo cilium

    eBPF-based Networking, Security, and Observability

    Project mention: Gopher Gold #20 - Wed Nov 18 2020 | dev.to | 2020-11-17

    cilium/cilium (Go): eBPF-based Networking, Security, and Observability

  • GitHub repo dns

    DNS library in Go

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

    A QUIC implementation in pure go

    Project mention: Syncthing v1.17.0 released with massively improved QUIC performance | reddit.com/r/Syncthing | 2021-06-01

    One of the final drafts of IETF QUIC. They use https://github.com/lucas-clemente/quic-go

  • GitHub repo httpstat

    It's like curl -v, with colours.

  • 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 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

  • GitHub repo gopacket

    Provides packet processing capabilities for Go

  • GitHub repo HTTPLab

    The interactive web server

  • GitHub repo cni

    Container Network Interface - networking for Linux containers

    Project mention: The Sisyphean Task of DNS Client Config on Linux | news.ycombinator.com | 2021-04-15
  • GitHub repo kcp-go

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

    Project mention: Open-source game server for fast-paced games | reddit.com/r/gamedev | 2021-03-24

    I used kcp-go. The server includes two parts, Mothership and child server. After the mothership server matchmaking system finds a game it will pass those users to the child server.

  • 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 gobgp

    BGP implemented in the Go Programming Language

  • GitHub repo kuma

    🐻 The Universal Service Mesh. CNCF Sandbox Project.

    Project mention: How I Stopped Coding Repetitive Service Components with Kong | dev.to | 2021-05-18

    Taking things to a broader level, Kuma is another platform agnostic-OSS solution for service mesh and microservice management – with control plane support of Kubernetes, virtual machines (VM), and even bare-metal environments. Kuma was donated to the Cloud Native Computing Foundation (CNCF) by Kong and still actively contributes to the evolving code base.

  • GitHub repo ssh

    Easy SSH servers in Golang

  • GitHub repo heimdall

    An enhanced HTTP client for Go (by gojek)

    Project mention: Can you share some Go package that you think has high quality clean code? | reddit.com/r/golang | 2021-04-13

    Heimdall HTTP Client

  • 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 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 gobetween

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

    Project mention: What is a Service Mesh - youtube by HashiCorp using Consul | reddit.com/r/LXD | 2021-02-18
  • 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

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-06-18.

Index

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

Project Stars
1 fasthttp 15,306
2 kcptun 12,471
3 cilium 8,508
4 dns 5,614
5 quic-go 5,457
6 httpstat 5,127
7 evio 4,881
8 gnet 4,707
9 gopacket 4,199
10 HTTPLab 3,667
11 cni 3,543
12 kcp-go 2,988
13 emitter-io 2,886
14 kubefwd 2,447
15 gobgp 2,218
16 kuma 2,216
17 ssh 2,051
18 heimdall 1,948
19 fortio 1,933
20 nano 1,709
21 mqttPaho 1,629
22 gobetween 1,568
23 hubble 1,404
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com