Go Libraries
Libraries
Terminal
- spf13/cobra: A Commander for modern Go CLI interactions
- rivo/tview: Rich interactive widgets for terminal-based UIs written in Go
Microservice
- go-kit/kit: A standard library for microservices.
- micro/go-micro: A distributed systems development framework
- TykTechnologies/tyk: Tyk Open Source API Gateway written in Go
- goadesign/goa: Design-based APIs and microservices in Go
- hashicorp/serf: Service orchestration and management tool.
- buger/goreplay: GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
Web
- gin-gonic/gin: Gin is a HTTP web framework written in Go
- labstack/echo: High performance, minimalist Go web framework
- urfave/negroni: Idiomatic HTTP Middleware for Golang
- revel/revel: A high productivity, full-stack web framework for the Go language.
- 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
- Gorilla, the golang web toolkit
- gobuffalo/buffalo: Rapid Web Development w/ Go
Network
- valyala/fasthttp: Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
- imroc/req: a golang http request library for humans
- mholt/caddy: Fast, cross-platform HTTP/2 web server with automatic HTTPS
- henrylee2cn/teleport: Teleport is a versatile, high-performance and flexible TCP socket framework.
- osrg/gobgp: BGP implemented in the Go Programming Language
Database
- go-sql-driver/mysql: Go MySQL Driver is a MySQL driver for Go’s (golang) database/sql package
- mattes/migrate: Database migrations. CLI and Golang library.
- facebook/ent: An entity framework for Go
- matcornic/hermes: Golang package that generates clean, responsive HTML e-mails for sending transactional mail
- sdwolfe32/trumail: A Fast and Free Email Verification API written in Go
Auth
Testing
- stretchr/testify: A toolkit with common assertions and mocks that plays nicely with the standard library
- matryer/moq: Interface mocking tool for go generate
- matryer/is: Professional lightweight testing mini-framework for Go.
- dvyukov/go-fuzz: Randomized testing for Go
- google/gofuzz: Fuzz testing for go.
Utils
- sirupsen/logrus: Structured, pluggable logging for Go.
- google/logger: Cross platform Go logging library.
- uber-go/zap: Blazing fast, structured, leveled logging in Go.
- emirpasic/gods: GoDS (Go Data Structures). Containers (Sets, Lists, Stacks, Maps, Trees), Sets (HashSet, TreeSet), Lists (ArrayList, SinglyLinkedList, DoublyLinkedList), Stacks (LinkedListStack, ArrayStack), Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap), Trees (RedBlackTree, AVLTree, BTree, BinaryHeap), Comparators, Iterators, Enumerables, Sort, JSON
- matryer/vice: Go channels at horizontal scale (powered by message queues)
- pkg/errors: Simple error handling primitives
- tidwall/gjson: Get JSON values quickly - JSON Parser for Go
- robfig/cron: a cron library for go
- kelseyhightower/envconfig: Golang library for managing configuration data from environment variables
- samber/lo: 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find…)
Data
- gonum/gonum: Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more
- pilosa/pilosa: Pilosa is an open source, distributed bitmap index that dramatically accelerates queries across multiple, massive data sets.
- 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.
- go-ego/riot: Go Open Source, Distributed, Simple and efficient Search Engine
- blevesearch/bleve: A modern text indexing library for go
- montanaflynn/stats: A statistics package with common functions that are missing from the Golang standard library.
- mattes/migrate: Database migrations. CLI and Golang library.
Cache
- bradfitz/gomemcache: Go Memcached client library #golang
- golang/groupcache: groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
Others
- kr/beanstalk: Go client for beanstalkd
- benmanns/goworker: goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers.
- nareix/joy4: Golang audio/video library and streaming server
- gonet/2 by gonet2
- go-vgo/robotgo: RobotGo, Go Native cross-platform system automation
- rakyll/statik: Embed files into a Go executable
- esimov/pigo: Golang implementation of Pico face detection library.