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

  • 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 프로토콜을 기반으로 하는 보안 터널입니다。

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

  • GitHub repo httpstat

    It's like curl -v, with colours.

  • GitHub repo quic-go

    A QUIC implementation in pure go

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

  • GitHub repo gopacket

    Provides packet processing capabilities for Go

  • GitHub repo gnet

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

  • GitHub repo HTTPLab

    The interactive web server

  • GitHub repo cni

    Container Network Interface - networking for Linux containers

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

  • GitHub repo kcp-go

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

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

  • GitHub repo gobgp

    BGP implemented in the Go Programming Language

  • GitHub repo kuma

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

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

  • 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

  • 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

  • GitHub repo water

    A simple TUN/TAP library written in native Go.

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

Index

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

Project Stars
1 fasthttp 14,531
2 kcptun 12,327
3 cilium 7,621
4 dns 5,315
5 httpstat 5,030
6 quic-go 4,966
7 gopacket 3,944
8 gnet 3,733
9 HTTPLab 3,658
10 cni 3,282
11 kcp-go 2,875
12 emitter-io 2,760
13 kubefwd 2,285
14 gobgp 2,150
15 kuma 2,096
16 ssh 1,888
17 fortio 1,783
18 heimdall 1,775
19 nano 1,597
20 mqttPaho 1,526
21 gobetween 1,522
22 hubble 1,231
23 water 1,188