2D graphics
912
disintegration/imaging Imaging is a simple image processing package for Go
fogleman/gg Go Graphics - 2D rendering in Go with a simple API.
anthonynsimon/bild Image processing algorithms in pure Go
nfnt/resize Pure golang image resizing
skip2/go-qrcode :sparkles: QR Code encoder (Go)
h2non/imaginary Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
ajstarks/svgo Go Language Library for SVG generation
esimov/pigo Fast face detection, pupil/eyes localization and facial landmark points detection library in pure Go.
dchest/captcha Go package captcha implements generation and verification of image and audio CAPTCHAs.
h2non/bimg Go package for fast high-level image processing powered by libvips C library
3D graphics
264
fogleman/ln 3D line art engine.
fogleman/pt A path tracer written in Go.
go-gl/glfw Go bindings for GLFW 3
aarzilli/gdlv GUI frontend for Delve
go-gl/gl Go bindings for OpenGL (generated via glow)
fogleman/fauxgl Software-only 3D renderer written in Go.
vulkan-go/vulkan Vulkan API bindings for Go programming language
go-gl/mathgl A pure Go 3D math library.
deadsy/sdfx A simple CAD package using signed distance functions
hunterloftis/pbr a Physically Based Renderer (PBR) in Go
google/btree BTree provides a simple, ordered, in-memory data structure for Go programs.
sergi/go-diff Diff, match and patch text in Go
cornelk/hashmap A Golang lock-free thread-safe HashMap optimized for fastest read access.
seiflotfy/cuckoofilter Cuckoo Filter: Practically Better Than Bloom
tidwall/btree B-tree implementation for Go
axiomhq/hyperloglog HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom
armon/go-radix Golang implementation of Radix trees
r3labs/diff A library for diffing golang structures
scylladb/go-set Type-safe, zero-allocation sets for Go
derekparker/trie Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
aws/aws-sdk-go AWS SDK for the Go programming language (In Maintenance Mode, End-of-Life on 07/31/2025). The AWS SDK for Go v2 is available here: https://github.com/aws/aws-sdk-go-v2
bwmarrin/discordgo (Golang) Go bindings for Discord
google.golang.org/api Auto-generated Google APIs for Go.
aws/aws-sdk-go-v2 AWS SDK for the Go programming language.
cloud.google.com/go Google Cloud Client Libraries for Go.
silenceper/wechat WeChat SDK for Go (微信SDK:简单、易用)
minio/minio-go MinIO Go client SDK for S3 compatible object storage
xanzy/go-gitlab GitLab Go SDK
stripe/stripe-go Go library for the Stripe API.
signintech/gopdf A simple library for generating PDF written in Go lang
rakyll/statik Embed files into a Go executable
gobuffalo/packr The simple and easy way to embed static files into Go binaries.
elazarl/go-bindata-assetfs Serves embedded files from `jteeuwen/go-bindata` with `net/http`
jteeuwen/go-bindata Hard fork of jteeuwen/go-bindata because it disappeared, Please refer to issues#5 for details.
bouk/staticfiles staticfiles compiles a directory of files into an embeddable .go file
jessevdk/go-assets Simple embedding of assets in go
shaoshing/train Asset Management for web app using Golang.
denandz/sourcemapper Extract JavaScript source trees from Sourcemap files
phogolabs/parcello Golang Resource Bundler [deprecated]
omeid/go-resources Unfancy resources embedding for Go with out of box http.FileSystem support.
faiface/beep A little package that brings sound to any Go application. Suitable for playback and audio-processing.
hajimehoshi/go-mp3 An MP3 decoder in pure Go
gordonklaus/portaudio Go bindings for the PortAudio audio I/O library
dhowden/tag ID3, MP4 and OGG/FLAC metadata parsing in Go
go.senan.xyz/gonic music streaming server / free-software subsonic server API implementation
mewkiz/flac Package flac provides access to FLAC (Free Lossless Audio Codec) streams.
nf/sigourney A modular audio synthesizer
go-audio/wav Battle tested Wav decoder/encoder
navidrome/navidrome 🎧☁️ Your Personal Streaming Service
gomidi/midi Library for reading and writing of MIDI messages and MIDI files (SMF) with Go
Authentication
2.3k
casbin/casbin An authorization library that supports access control models like ACL, RBAC, ABAC in Golang: https://discord.gg/S5UjpzGZjN
markbates/goth Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.
gorilla/sessions Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
ory/ladon A SDK for access control policies: authorization for the microservice and IoT age. Inspired by AWS IAM policies. Written for Go.
coreos/go-oidc A Go OpenID Connect client.
sigs.k8s.io/aws-iam-authenticator A tool to use AWS IAM credentials to authenticate to a Kubernetes cluster
ory/keto The most scalable and customizable permission server on the market. Fix your slow or broken permission system with Google's proven "Zanzibar" approach. Supports ACL, RBAC, and more. Written in Go, cloud native, headless, API-first. Available as a service on Ory Network and for self-hosters.
ory/fosite Extensible security first OAuth 2.0 and OpenID Connect SDK for Go.
openshift/osin Golang OAuth2 server library
gin-contrib/sessions Gin middleware for session management
ethereum/go-ethereum Go implementation of the Ethereum protocol
hyperledger/fabric Hyperledger Fabric is an enterprise-grade permissioned distributed ledger framework for developing solutions and applications. Its modular and versatile design satisfies a broad range of industry use cases. It offers a unique approach to consensus that enables performance at scale while preserving privacy.
btcsuite/btcd An alternative full node bitcoin implementation written in Go (golang)
tendermint/tendermint ⟁ Tendermint Core (BFT Consensus) in Go
goraft/raft UNMAINTAINED: A Go implementation of the Raft distributed consensus protocol.
prysmaticlabs/prysm Go implementation of Ethereum proof of stake
keybase/client Keybase Go Library, Client, Service, OS X, iOS, Android, Electron
smartcontractkit/chainlink node of the decentralized oracle network, bridging on and off-chain computation
nntaoli-project/goex Cryptocurrency Exchange REST API SDK Wrapper Implemented With the golang, Supporting OKX, Huobi, Binance
stellar/go Stellar's public monorepo of go code
CLI
1.3k
spf13/cobra A Commander for modern Go CLI interactions
urfave/cli A simple, fast, and fun package for building command line apps in Go
c-bata/go-prompt Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.
manifoldco/promptui Interactive prompt for command-line applications
nsf/gocode An autocompletion daemon for the Go programming language
jessevdk/go-flags go command line option parser
spf13/pflag Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
chzyer/readline Readline is a pure go(golang) implementation for GNU-Readline kind library
alecthomas/kong Kong is a command-line parser for Go
alexflint/go-arg Struct-based argument parsing in Go
honnef.co/go/tools Staticcheck - The advanced Go linter
reviewdog/reviewdog 🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
mgechev/revive 🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
tools/godep dependency tool for go
alecthomas/gometalinter DEPRECATED: Use https://github.com/golangci/golangci-lint
mvdan.cc/gofumpt A stricter gofmt
fatih/vim-go Go development plugin for Vim
kisielk/errcheck errcheck checks that you checked errors.
google/codesearch Fast, indexed regexp search over large file trees
yuin/goldmark :trophy: A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.
Compression
389
Compression and archives
google/brotli Brotli compression format
klauspost/compress Optimized Go Compression Packages
mholt/archiver DEPRECATED. Please use mholt/archives instead.
golang/snappy The Snappy compression format in the Go programming language.
klauspost/pgzip Go parallel gzip (de)compression
google/zopfli Zopfli Compression Algorithm is a compression library programmed in C to perform very good, but slow, deflate or zlib compression.
pierrec/lz4 LZ4 compression and decompression in pure Go
andybalholm/brotli Pure Go Brotli encoder and decoder
ulikunitz/xz Pure golang package for reading and writing xz-compressed files
flanglet/kanzi-go Fast lossless data compression in Go
Concurrency
1.7k
cenkalti/backoff ⏱ The exponential backoff algorithm in Go
gocraft/work Process background jobs in Go
chrislusf/gleam Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.
oklog/run A universal mechanism to manage goroutine lifecycles
gammazero/workerpool Concurrency limiting goroutine pool
go.uber.org/atomic Wrapper types for sync/atomic which enforce atomic access
jrallison/go-workers Sidekiq compatible background workers in golang
jolestar/go-commons-pool a generic object pool for golang
bamzi/jobrunner Framework for performing work asynchronously, outside of the request flow
sasha-s/go-deadlock Online deadlock detection in go (golang)
Configuration
1.8k
spf13/viper Go configuration with fangs
joho/godotenv A Go port of Ruby's dotenv library (Loads environment variables from .env files)
hashicorp/hcl HCL is the HashiCorp configuration language.
kelseyhightower/envconfig Golang library for managing configuration data from environment variables
go-ini/ini Package ini provides INI file read and write functionality in Go
knadh/koanf Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
ilyakaznacheev/cleanenv ✨Clean and minimalistic environment configuration reader for Golang
a8m/envsubst Environment variables substitution for Go
unknwon/goconfig Package goconfig is a fully functional and comments-support configuration file (.ini) parser.
lalamove/konfig Composable, observable and performant config handling for Go for the distributed processing era
Containers
2.2k
Containers and Kubernetes
moby/moby The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
containerd/containerd An open and reliable container runtime
opencontainers/runc CLI tool for spawning and running containers according to the OCI specification
google/cadvisor Analyzes resource usage and performance characteristics of running containers.
moby/buildkit concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
rkt/rkt [Project ended] rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards.
docker/cli The Docker CLI
docker/machine Machine management for a container-centric world
goharbor/harbor An open source trusted cloud native registry project that stores, signs, and scans content.
containers/buildah A tool that facilitates building OCI images.
Cryptography
1.2k
cloudflare/cfssl CFSSL: Cloudflare's PKI and TLS toolkit
square/go-jose An implementation of JOSE standards (JWE, JWS, JWT) in Go
gtank/cryptopasta copy & paste-friendly golang crypto
cossacklabs/themis Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
cloudflare/circl CIRCL: Cloudflare Interoperable Reusable Cryptographic Library
keybase/saltpack a modern crypto messaging format
google/certificate-transparency-go Auditing for TLS certificates (Go code)
zalando/go-keyring Cross-platform keyring interface for Go
xordataexchange/crypt Store and retrieve encrypted configs from etcd or consul
kevinburke/nacl Pure Go implementation of the NaCL set of API's
influxdata/influxdb Scalable datastore for metrics, events, and real-time analytics
pingcap/tidb TiDB - the open-source, cloud-native, distributed SQL database designed for modern applications.
cockroachdb/cockroach CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
golang/groupcache groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
apple/foundationdb FoundationDB - the open source, distributed, transactional key-value store
etcd-io/etcd Distributed reliable key-value store for the most critical data of a distributed system
go.etcd.io/etcd Distributed reliable key-value store for the most critical data of a distributed system
cayleygraph/cayley An open-source graph database
boltdb/bolt An embedded key/value database for Go.
vitessio/vitess Vitess is a database clustering system for horizontal scaling of MySQL.
go-sql-driver/mysql Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
jmoiron/sqlx general purpose extensions to golang's database/sql
jackc/pgx PostgreSQL driver and toolkit for Go
gomodule/redigo Go client for Redis
mattn/go-sqlite3 sqlite3 driver for go using database/sql
lib/pq Pure Go Postgres driver for database/sql
syndtr/goleveldb LevelDB key/value database in Go.
xo/usql Universal command-line interface for SQL databases
graph-gophers/graphql-go GraphQL server with a focus on ease of use
go-gorp/gorp Go Relational Persistence - an ORM-ish library for Go
Date and Time
1.1k
jinzhu/now Now is a time toolkit for golang
araddon/dateparse GoLang Parse many date strings without knowing format in advance.
uniplaces/carbon Carbon for Golang, an extension for Time
gorhill/cronexpr Cron expression parser in Go language (golang)
beevik/ntp a simple ntp client package for go
hako/durafmt :clock8: Better time duration formatting in Go!
rickar/cal Go (golang) calendar library for dealing with holidays and work days
teambition/rrule-go Go library for working with recurrence rules for calendar dates.
go-playground/locales :earth_americas: a set of locales generated from the CLDR Project which can be used independently or within an i18n package; these were built for use with, but not exclusive to https://github.com/go-playground/universal-translator
djherbis/times #golang file times (atime, mtime, ctime, btime)
hashicorp/terraform Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
hashicorp/nomad Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.
tektoncd/pipeline A cloud-native Pipeline resource.
mitchellh/gox A dead simple, no frills Go cross compile tool
hashicorp/packer Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
ovh/cds Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform
apache/beam Apache Beam is a unified programming model for Batch and Streaming data processing.
contribsys/faktory Language-agnostic persistent background job server
rook/rook Storage Orchestration for Kubernetes
jenkins-x/jx Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
687
go-gomail/gomail The best way to send emails in Go.
matcornic/hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail
jordan-wright/email Robust and flexible email library for Go
emersion/go-imap 📥 An IMAP library for clients and servers
emersion/go-smtp 📤 An SMTP client & server library written in Go
emersion/hydroxide A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge
mailslurper/mailslurper Local, web-based mail server application. Slurp mails into oblivion!
jessfraz/gmailfilters A tool to sync Gmail filters from a config file to your account.
xhit/go-simple-mail Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP.
jhillyerd/enmime MIME mail encoding and decoding package for Go
Embeddable scripting languages and virtual machines
open-policy-agent/opa Open Policy Agent (OPA) is an open source, general-purpose policy engine.
yuin/gopher-lua GopherLua: VM and compiler for Lua in Go
cel.dev/expr Common Expression Language -- specification and binary representation
bitfield/script Making it easy to write shell-like scripts in Go
d5/tengo A fast script language for Go
google/cel-go Fast, portable, non-Turing complete expression evaluation with gradual typing (Go)
gaia-pipeline/gaia Build powerful pipelines in any programming language.
src.elv.sh Powerful scripting language & versatile interactive shell
mattn/anko Scriptable interpreter written in golang
sbinet/go-python naive go bindings to the CPython2 C-API
json-iterator/go A high-performance 100% compatible drop-in replacement of "encoding/json"
golang/protobuf Go support for Google's protocol buffers
google/flatbuffers FlatBuffers: Memory Efficient Serialization Library
mitchellh/mapstructure Go library for decoding generic map values into native Go structures and vice versa.
gogo/protobuf [Deprecated] Protocol Buffers for Go with Gadgets
buger/jsonparser One of the fastest alternative JSON parser for Go that does not require schema
fatih/structs Utilities for Go structs
mailru/easyjson Fast JSON serializer for golang.
spf13/cast safe and easy casting from one type to another in Go
pquerna/ffjson faster JSON serialization for Go
pkg/errors Simple error handling primitives
hashicorp/go-multierror A Go (golang) package for representing a list of errors as a single error.
cockroachdb/errors Go error library with error portability over the network
juju/errors Common juju errors and functions to annotate errors. Based on juju/errgo
joomcode/errorx A comprehensive error handling library for Go
go-errors/errors errors with stacktraces for go
uber-go/multierr Combine one or more Go errors together
go.uber.org/multierr Combine one or more Go errors together
ztrue/tracerr Golang errors with stack trace and source fragments.
rotisserie/eris Error handling library with readable stack traces and flexible formatting support 🎆
fsnotify/fsnotify Cross-platform filesystem notifications for Go.
spf13/afero A FileSystem Abstraction System for Go
prasmussen/gdrive Google Drive CLI Client
h2non/filetype Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature
howeyc/fsnotify File system notification for Go
gabriel-vasile/mimetype A fast Golang library for media type and file extension detection, based on magic numbers
google/skicka Command-line utility for working with Google Drive. Join the mailing list at https://groups.google.com/forum/#!forum/skicka-users.
rjeczalik/notify File system event notification library on steroids.
otiai10/copy Go copy directory recursively
karrick/godirwalk Fast directory traversal for Golang
Finance
813
shopspring/decimal Arbitrary-precision fixed-point decimal numbers in Go
tjfoc/gmsm GM SM2/3/4 library based on Golang (基于Go语言的国密SM2/SM3/SM4算法库)
mop-tracker/mop Stock market tracker for hackers.
thrasher-corp/gocryptotrader A cryptocurrency trading bot and framework supporting multiple exchanges written in Golang.
leekchan/accounting money and currency formatting for golang
sdcoffey/techan Technical Analysis Library for Golang
ericlagergren/decimal A high-performance, arbitrary-precision, floating-point decimal library.
moov-io/ach ACH implements a reader, writer, and validator for Automated Clearing House (ACH) files. The HTTP server is available in a Docker image and the Go package is available.
cgrates/cgrates Real-time Charging System for Telecom & ISP environments
i25959341/orderbook Matching Engine for Limit Order Book in Golang
Game development tools, simulators and games
hajimehoshi/ebiten Ebitengine - A dead simple 2D game engine for Go
faiface/pixel A hand-crafted 2D game library in Go
name5566/leaf A game server framework in Go (golang)
veandco/go-sdl2 SDL2 binding for Go
g3n/engine Go 3D Game Engine (http://g3n.rocks)
lonng/nano Lightweight, facility, high performance golang based game server framework
open-match.dev/open-match Flexible, extensible, and scalable video game matchmaking.
icexin/gocraft A Minecraft like game written in go
xiaonanln/goworld Scalable Distributed Game Server Engine with Hot Swapping in Golang
gen2brain/raylib-go Go bindings for raylib, a simple and easy-to-use library to enjoy videogames programming.
Geography
343
tidwall/tile38 Real-time Geospatial and Geofencing
google/open-location-code Open Location Code is a library to generate short codes, called "plus codes", that can be used as digital addresses where street addresses don't exist.
golang/geo S2 geometry library in Go
go-spatial/tegola Tegola is a Mapbox Vector Tile server written in Go
kellydunn/golang-geo Geographical calculations in Go.
paulmach/orb Types and utilities for working with 2d geometry in Golang
twpayne/go-geom Package geom implements efficient geometry types for geospatial applications.
omniscale/imposm3 Imposm imports OpenStreetMap data into PostGIS
mmcloughlin/geohash Golang geohash library
consbio/mbtileserver Basic Go server for mbtiles
GUI
562
therecipe/qt Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
lxn/walk A Windows GUI toolkit for the Go Programming Language
fyne.io/fyne/v2 Cross platform GUI toolkit in Go inspired by Material Design
andlabs/ui Platform-native GUI library for Go.
google/gxui An experimental Go cross platform UI library.
getlantern/systray a cross platfrom Go library to place an icon and menu in the notification area
go-flutter-desktop/go-flutter Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.
gotk3/gotk3 Go bindings for GTK3
ying32/govcl Cross-platform Go/Golang GUI library.
aarzilli/nucular GUI toolkit for go
Hardware
1.1k
Interfacing with hardware and other embedded development
hybridgroup/gobot Golang framework for robotics, drones, and the Internet of Things (IoT)
go-vgo/robotgo RobotGo, Go Native cross-platform RPA and GUI automation @vcaesar
unicorn-engine/unicorn Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
arduino/arduino-cli Arduino command line tool
kidoman/embd Embedded Programming Framework in Go
brutella/hc hc is a lightweight framework to develop HomeKit accessories in Go.
google/periph Older version of periph, see new version at https://github.com/periph
micromdm/micromdm Mobile Device Management server
rakyll/go-hardware A directory of hardware related libs, tools, and tutorials for Go
danielpaulus/go-ios This is an operating system independent implementation of iOS device features. You can run UI tests, launch or kill apps, install apps etc. with it.
HTTP clients
1.9k
resty.dev/v3 Simple HTTP and REST client library for Go
davecheney/httpstat It's like curl -v, with colours.
fvbock/endless Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe)
parnurzeal/gorequest GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )
tebeka/selenium Selenium/Webdriver client for Go
hashicorp/go-retryablehttp Retryable HTTP client in Go
levigross/grequests A Go "clone" of the great and famous Requests library
astaxie/bat Go implement CLI, cURL-like tool for humans
sjqzhang/go-fastdfs go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic repair.(similar fastdfs).
geziyor/geziyor Geziyor, blazing fast web crawling & scraping framework for Go. Supports JS rendering.
HTTP framework
3.2k
gin-gonic/gin Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
go-kit/kit A standard library for microservices.
gorilla/mux Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍
julienschmidt/httprouter A high performance HTTP request router that scales well
kataras/iris The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio :rocket:
valyala/fasthttp Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
go-chi/chi lightweight, idiomatic and composable router for building Go HTTP services
go-micro.dev/v5 A Go microservices framework
revel/revel A high productivity, full-stack web framework for the Go language.
gobuffalo/buffalo Rapid Web Development w/ Go
swaggo/gin-swagger gin middleware to automatically generate RESTful API documentation with Swagger 2.0.
justinas/alice Painless middleware chaining for Go
didip/tollbooth Simple middleware to rate-limit HTTP requests.
gin-gonic/contrib Collection of middlewares created by the community
ulule/limiter Dead simple rate limit middleware for Go.
gorilla/handlers Package gorilla/handlers is a collection of useful middleware for Go HTTP services & web applications 🛃
gin-contrib/cors Official CORS gin's middleware
justinas/nosurf CSRF protection middleware for Go.
throttled/throttled Package throttled implements rate limiting access to resources such as HTTP endpoints.
auth0/go-jwt-middleware A Middleware for Go Programming Language to check for JWTs on HTTP requests
Identifiers
334
google/uuid Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
oklog/ulid Universally Unique Lexicographically Sortable Identifier (ULID) in Go
segmentio/ksuid K-Sortable Globally Unique IDs
rs/xid xid is a globally unique id generator thought for the web
sony/sonyflake A distributed unique ID generator inspired by Twitter's Snowflake
bwmarrin/snowflake A simple to use Go (golang) package to generate or parse Twitter snowflake IDs
gofrs/uuid A UUID package for Go
lithammer/shortuuid A generator library for concise, unambiguous and URL-safe UUIDs
matoous/go-nanoid Golang random IDs generator.
teris-io/shortid Super short, fully unique, non-sequential and URL friendly Ids
Kubernetes
3.4k
kubernetes/kubernetes Production-Grade Container Scheduling and Management
k8s.io/kubernetes Production-Grade Container Scheduling and Management
derailed/k9s 🐶 Kubernetes CLI To Manage Your Clusters In Style!
openshift/origin Conformance test suite for OpenShift
kubernetes/client-go Go client for Kubernetes.
k8s.io/client-go Go client for Kubernetes.
operator-framework/operator-sdk SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.
kubernetes/kompose Convert Compose to Kubernetes
helm/helm The Kubernetes Package Manager
kubernetes/dashboard General-purpose web UI for Kubernetes clusters
Load Testing
296
rakyll/hey HTTP load generator, ApacheBench (ab) replacement
codesenberg/bombardier Fast cross-platform HTTP benchmarking tool written in Go
bojand/ghz Simple gRPC benchmarking and load testing tool
fortio.org/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.
fortio/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.
myzhan/boomer A better load generator for locust, written in golang.
tsliwowicz/go-wrk go-wrk - a HTTP benchmarking tool based in spirit on the excellent wrk tool (https://github.com/wg/wrk)
kubernetes/perf-tests Performance tests and benchmarks
rogerwelin/cassowary :rocket: Modern cross-platform HTTP load-testing tool written in Go
yandex/pandora A load generator in Go language
Logging
3.1k
sirupsen/logrus Structured, pluggable logging for Go.
uber-go/zap Blazing fast, structured, leveled logging in Go.
go.uber.org/zap Blazing fast, structured, leveled logging in Go.
rs/zerolog Zero Allocation JSON Logger
grafana/loki Like Prometheus, but for logs.
gliderlabs/logspout Log routing for Docker container logs
golang/glog Leveled execution logs for Go
op/go-logging Golang logging library
cihub/seelog Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting.
apex/log Structured logging package for Go.
And science in general: math, statistics, etc.
tensorflow/tensorflow An Open Source Machine Learning Framework for Everyone
montanaflynn/stats A well tested and comprehensive Golang statistics library package with no dependencies.
gorgonia.org/gorgonia Gorgonia is a library that helps facilitate machine learning in Go.
cdipaolo/goml On-line Machine Learning in Go (and so much more)
cpmech/gosl Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.
kubeflow/katib Automated Machine Learning on Kubernetes
jbrukh/bayesian Naive Bayesian Classification for Golang.
shenwei356/csvtk A cross-platform, efficient and practical CSV/TSV toolkit in Golang
feast-dev/feast The Open Source Feature Store for Machine Learning
kubeflow/arena A CLI for Kubeflow.
Messaging
3.3k
segmentio/kafka-go Kafka library in Go
streadway/amqp Go client for AMQP 0.9.1
nats-io/nats.go Golang client for NATS, the cloud native messaging system.
appleboy/gorush A push notification server written in Go (Golang).
gotify/server A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
sideshow/apns2 ⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol.
nsqio/nsq A realtime distributed messaging platform
emitter-io/emitter High performance, distributed and low latency publish-subscribe platform.
liangdas/mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式微服务框架
lovoo/goka Goka is a compact yet powerful distributed stream processing library for Apache Kafka written in Go.
gorilla/websocket Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.
miekg/dns DNS library in Go
pion/webrtc Pure Go implementation of the WebRTC API
google/gopacket Provides packet processing capabilities for Go
libp2p/go-libp2p libp2p implementation in Go
lightningnetwork/lnd Lightning Network Daemon ⚡️
shadowsocks/shadowsocks-go go port of shadowsocks (Deprecated)
anacrolix/torrent Full-featured BitTorrent client package and utilities
fullstorydev/grpcurl Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
linkerd/linkerd2 Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Observability
2.2k
grafana/grafana The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
prometheus/prometheus The Prometheus monitoring system and time series database.
influxdata/telegraf Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
jaegertracing/jaeger CNCF Jaeger, a Distributed Tracing Platform
elastic/beats :tropical_fish: Beats - Lightweight shippers for Elasticsearch & Logstash
prometheus/node_exporter Exporter for machine metrics
google/pprof pprof is a tool for visualization and analysis of profiling data
prometheus/client_golang Prometheus instrumentation library for Go applications
opentracing/opentracing-go OpenTracing API for Go. 🛑 This library is DEPRECATED! https://github.com/opentracing/specification/issues/163
rcrowley/go-metrics Go port of Coda Hale's Metrics library
Security
1.5k
letsencrypt/boulder An ACME-based certificate authority, written in Go.
unrolled/secure HTTP middleware for Go that facilitates some quick security wins.
square/certstrap Tools to bootstrap CAs, certificate requests, and signed certificates.
awnumar/memguard Secure software enclave for storage of sensitive information in memory.
ory/oathkeeper A cloud native Identity & Access Proxy / API (IAP) and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP(s) requests. Inspired by the BeyondCorp / Zero Trust white paper. Written in Go.
tomnomnom/assetfinder Find domains and subdomains related to a given domain
cloudflare/redoctober Go server for two-man rule style file encryption and decryption.
pomerium/pomerium Pomerium is an identity and context-aware access proxy.
jhaals/yopass Secure sharing of secrets, passwords and files
hlandau/acmetool :lock: acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt)
google/gops A tool to list and diagnose Go processes currently running on your system
hpcloud/tail Go package for reading from continously updated files (tail -f)
sevlyar/go-daemon A library for writing system daemons in golang.
iovisor/gobpf Go bindings for creating BPF programs.
cloudflare/tableflip Graceful process restarts in Go
mitchellh/go-ps Find, list, and inspect processes from Go (golang).
cilium/ebpf ebpf-go is a pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel.
jaypipes/ghw Go HardWare discovery/inspection library
go-ole/go-ole win32 ole implementation for golang
dave/jennifer Jennifer is a code generator for Go
flosch/pongo2 Django-syntax like template-engine for Go
valyala/quicktemplate Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template
unrolled/render Go package for easily rendering JSON, XML, binary data, and HTML templates responses.
gomarkdown/markdown markdown parser and HTML renderer for Go
hoisie/mustache The mustache template language in Go
eknkc/amber Amber is an elegant templating engine for Go Programming Language, inspired from HAML and Jade
valyala/fasttemplate Simple and fast template engine for Go
yosssi/ace HTML template engine for Go
aymerick/raymond Handlebars for golang
Testing
2.9k
stretchr/testify A toolkit with common assertions and mocks that plays nicely with the standard library
onsi/ginkgo A Modern Testing Framework for Go
smartystreets/goconvey Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.
golang/mock GoMock is a mocking framework for the Go programming language.
gruntwork-io/terratest Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
dvyukov/go-fuzz Randomized testing for Go
cweill/gotests Automatically generate Go test boilerplate from your source code.
brianvoe/gofakeit Random fake data generator written in go
gavv/httpexpect End-to-end HTTP and REST API testing for Go.
onsi/gomega Ginkgo's Preferred Matcher Library
Text Processing
1.6k
Processing and formatting text
blevesearch/bleve A modern text/numeric/geo-spatial/vector indexing library for go
dustin/go-humanize Go Humans! (formatters for units to human friendly sizes)
jdkato/prose :book: A Golang library for text processing, including tokenization, part-of-speech tagging, and named-entity extraction.
go-ego/gse Go efficient multilingual NLP and text segmentation; support English, Chinese, Japanese and others.
yanyiwu/gojieba "结巴"中文分词的Golang版本
mozillazg/go-pinyin 汉字转拼音
huandu/xstrings Implements string functions widely used in other languages but absent in Go.
client9/misspell Correct commonly misspelled English words in source files
olebedev/when A natural language date/time parser with pluggable rules
mvdan/xurls Extract urls from text
TUI
1.1k
TUI and advanced CLI UI
fatih/color Color package for Go (golang)
rivo/tview Terminal UI library with rich, interactive widgets — written in Golang
gdamore/tcell Tcell is an alternate terminal package, similar in some ways to termbox, but better in others.
olekukonko/tablewriter ASCII table in golang
schollz/progressbar A really basic thread-safe progress bar for Golang applications
nsf/termbox-go Pure Go termbox implementation
guptarohit/asciigraph Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
briandowns/spinner Go (golang) package with 90 configurable terminal spinner/progress indicators.
gosuri/uiprogress A go library to render progress bars in terminal applications
cjbassi/gotop A terminal based graphical activity monitor inspired by gtop and vtop
Uncategorized
64.9k
hashicorp/consul Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
syncthing/syncthing Open Source Continuous File Synchronization
grpc-ecosystem/grpc-gateway gRPC to JSON proxy generator following the gRPC HTTP spec
apache/arrow Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
goreleaser/goreleaser Deliver Go binaries as fast and easily as possible
minio/minio MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.
junegunn/fzf :cherry_blossom: A command-line fuzzy finder
gopherjs/gopherjs A compiler from Go to JavaScript for running Go code in a browser
coredns/coredns CoreDNS is a DNS server that chains plugins
go-delve/delve Delve is a debugger for the Go programming language.
Validation
433
go-playground/validator :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
asaskevich/govalidator [Go] Package of validators and sanitizers for strings, numerics, slices and structs
go-ozzo/ozzo-validation An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags.
thedevsaddam/govalidator Validate Golang request data with simple rules. Highly inspired by Laravel's request validation.
nyaruka/phonenumbers GoLang port of Google's libphonenumber library
mwitkow/go-proto-validators Generate message validators from .proto annotations.
gookit/validate ⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。
mholt/binding Reflectionless data binding for Go's net/http (not actively maintained)
badoux/checkmail Golang package for email validation
ttacon/libphonenumber golang port of Google's libphonenumber
Version Control
1.5k
Git, Mercurial and so on
code.gitea.io/gitea Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
go-gitea/gitea Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
gogs.io/gogs Gogs is a painless self-hosted Git service
jesseduffield/lazygit simple terminal UI for git commands
git-chglog/git-chglog CHANGELOG generator implemented in Go (Golang).
libgit2/git2go Git to Go; bindings for libgit2. Like McDonald's but tastier.
justjanne/powerline-go A beautiful and useful low-latency prompt for your shell, written in go
eth0izzle/shhgit Ah shhgit! Find secrets in your code. Secrets detection for your GitHub, GitLab and Bitbucket repositories.
tcnksm/ghr Upload multiple artifacts to GitHub Release in parallel
mkchoi212/fac Easy-to-use CUI for fixing git conflicts
Video
751
Video and subtitles
kkdai/youtube Download Youtube Video in Golang
nareix/joy4 Golang audio/video library and streaming server
giorgisio/goav Golang bindings for FFmpeg (This repository is no longer maintained)
stashapp/stash An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc
grafov/m3u8 Parser and generator of M3U8-playlists for Apple HLS. Library for Go language. :cinema:
strukturag/libheif libheif is an HEIF and AVIF file format decoder and encoder.
rylio/ytdl YouTube download library and CLI written in Go
3d0c/gmf Go Media Framework
tellytv/telly An IPTV proxy
xfrr/goffmpeg Powerful and dev-friendly FFMPEG wrapper written in Go
WebAssembly
221
vugu/vugu Vugu: A modern UI library for Go+WebAssembly (experimental)
perlin-network/life A secure WebAssembly VM catered for decentralized applications.
go-interpreter/wagon wagon, a WebAssembly-based Go interpreter, for Go.
wasmerio/wasmer-go 🐹🕸️ WebAssembly runtime for Go
dennwc/dom DOM library for Go and WASM
stdiopt/gowasm-experiments go webassembly experiments
tetratelabs/proxy-wasm-go-sdk WebAssembly for Proxies (Go SDK)
hajimehoshi/wasmserve An HTTP server for testing Wasm
nlepage/go-wasm-http-server Embed your Go HTTP handlers in a ServiceWorker and emulate an HTTP server!
tetratelabs/wazero wazero: the zero dependency WebAssembly runtime for Go developers