Go Networking

Open-source Go projects categorized as Networking

Top 23 Go Networking Projects

  • 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: Rob Pike: Gobs of data (2011) | news.ycombinator.com | 2023-12-04

    Someone made a benchmark of serialization libraries in go [1], and I was surprised to see gobs is one of the slowest ones, specially for decoding. I suspect part of the reason is that the API doesn't not allow reusing decoders [2]. From my explorations it seems like both JSON [3], message-pack [4] and CBOR [5] are better alternatives.

    By the way, in Go there are a like a million JSON encoders because a lot of things in the std library are not really coded for maximum performance but more for easy of usage, it seems. Perhaps this is the right balance for certain things (ex: the http library, see [6]).

    There are also a bunch of libraries that allow you to modify a JSON file "in place", without having to fully deserialize into structs (ex: GJSON/SJSON [7] [8]). This sounds very convenient and more efficient that fully de/serializing if we just need to change the data a little.

    --

    1: https://github.com/alecthomas/go_serialization_benchmarks

    2: https://github.com/golang/go/issues/29766#issuecomment-45492...

    --

    3: https://github.com/goccy/go-json

    4: https://github.com/vmihailenco/msgpack

    5: https://github.com/fxamacker/cbor

    --

    6: https://github.com/valyala/fasthttp#faq

    --

    7: https://github.com/tidwall/gjson

    8: https://github.com/tidwall/sjson

  • cilium

    eBPF-based Networking, Security, and Observability

    Project mention: Cisco to Acquire Cloud Native Networking and Security Leader Isovalent | news.ycombinator.com | 2023-12-21

    They would have had to add a few externals to get to Graduated but it's definitely a minority:

    https://github.com/cilium/cilium/blob/main/MAINTAINERS.md

  • Onboard AI

    ChatGPT with full context of any GitHub repo. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at app.getonboardai.com.

  • kcptun

    A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC.

    Project mention: KCP: UDP Implementation over TCP | news.ycombinator.com | 2023-10-31
  • quic-go

    A QUIC implementation in pure go

    Project mention: "Every time a new Go release happened, the package stopped building, and the authors had to add a new file with a new //go:build line, and then the entire ecosystem of packages with that as a dependency had to explicitly update to the new version" -- Go itself | /r/programmingcirclejerk | 2023-12-06

    Ecosystem-breaking packages happen more often than I thought possible in Go. The other one is https://github.com/quic-go/quic-go, which needs to explicitly support a Go version because it relies on some obscure internal of the language around crypto or some shit.

  • Netmaker

    Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.

    Project mention: Netmaker: An open source WireGuard VPN | news.ycombinator.com | 2024-02-23
  • gnet

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

    Project mention: Handling TCP connections at scale - Ideas/Suggestions | /r/golang | 2023-07-12

    Exciting question. Many goroutines consume resources accordingly and could also generate latency due to this. If you work under Linux: Have you looked at epoll? Since the system has to do basic connection handling anyway, you can shift or save at least part of the task. gnet is a very good library here to handle epoll & co. Maybe it makes sense to have a look at it or directly use epoll under go.

  • portmaster

    🏔 Love Freedom - ❌ Block Mass Surveillance

    Project mention: Portmaster is a privacy suite for your Windows and Linux desktop | news.ycombinator.com | 2024-02-06
  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • dns

    DNS library in Go

    Project mention: Wrote a CLI tool to check DNS configurations quickly (an alternative to dig) | /r/coding | 2023-07-10

    The heavylifting is done by this package: https://github.com/miekg/dns.

  • httpstat

    It's like curl -v, with colours.

  • gopacket

    Provides packet processing capabilities for Go

    Project mention: As a Go developer, I’m surprised Crystal isn’t more popular | /r/crystal_programming | 2023-05-26

    I have seen pcap but not packetz, thanks. Pcap looks unfinished and packetz has not been updated in a long time, but they might be able to make a working capture program. However the popularity and features available in Go regarding packet capture makes it very hard to beat. E.g. the Google gopacket library has 5.6k stars on github and as pretty much every feature you'd want for this sort of stuff built in.

  • evio

    Fast event-loop networking for Go

  • serving

    Kubernetes-based, scale-to-zero, request-driven compute (by knative)

    Project mention: ⚡⚡ Level Up Your Cloud Experience with These 7 Open Source Projects 🌩️ | /r/Cloud | 2023-12-07

    Knative

  • cni

    Container Network Interface - networking for Linux containers

    Project mention: Kubernetes Architecture | dev.to | 2023-08-15

    The CNI is language-agnostic and there are many different plugins available.

  • HTTPLab

    The interactive web server

  • req

    Simple Go HTTP client with Black Magic (by imroc)

  • kcp-go

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

  • netpoll

    A high-performance non-blocking I/O networking framework focusing on RPC scenarios.

  • emitter-io

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

  • kubefwd

    Bulk port forwarding Kubernetes services for local development.

  • kuma

    🐻 The multi-zone service mesh for containers, Kubernetes and VMs. Built with Envoy. CNCF Sandbox Project.

    Project mention: Any new Opensource projects in (go) looking for contributors. I want to start my journey as an OSS contributor. | /r/golang | 2023-05-14

    https://github.com/kumahq/kuma is an CNCF OSS service mesh for Kubernetes and VMs. We're a control plane on top of Envoy proxy. Very actively developed project, some big adopters in the community, and we've just refreshed all of our Good First Issues.

  • gobgp

    BGP implemented in the Go Programming Language

  • ssh

    Easy SSH servers in Golang

    Project mention: OpenSSH 9.3/9.3p1 Released | news.ycombinator.com | 2023-03-16
  • hubble

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

    Project mention: Architecting for Resilience: Crafting Opinionated EKS Clusters with Karpenter & Cilium Cluster Mesh — Part 1 | dev.to | 2023-10-31

    Since we installed Hubble on the cluster, Let’s check its cool UI and see how the traffic flows between the pods. To do so, let’s run:

  • WorkOS

    The modern API for authentication & user identity. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

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 2024-02-23.

Go Networking related posts

Index

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

Project Stars
1 fasthttp 20,775
2 cilium 17,970
3 kcptun 13,624
4 quic-go 9,260
5 Netmaker 8,749
6 gnet 8,441
7 portmaster 8,292
8 dns 7,679
9 httpstat 6,461
10 gopacket 6,013
11 evio 5,790
12 serving 5,287
13 cni 5,239
14 HTTPLab 3,964
15 req 3,904
16 kcp-go 3,886
17 netpoll 3,820
18 emitter-io 3,712
19 kubefwd 3,642
20 kuma 3,443
21 gobgp 3,420
22 ssh 3,314
23 hubble 3,183
The modern API for authentication & user identity.
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
workos.com