awesome-go
by avelino
A curated list of awesome Go frameworks, libraries and software
AI summary
Go library list
A curated collection of useful Go libraries and frameworks
- stars
- 134.5K
- forks
- 12K
- watching
- 2.8K
- awesome lists
- 16
- entries
- 2,777
What's in the list
2,777 links in 133 sections, with live GitHub stats.activeno commit in 2y
Links
Actor Model
Ergo
An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang
Goakt
Fast and Distributed Actor framework using protocol buffers as message for Golang
Hollywood
Blazingly fast and light-weight Actor engine written in Golang
ProtoActor
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Artificial Intelligence
chromem-go
Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence
- fun
The simplest but powerful way to use large language models (LLMs) in Go
langchaingo
LangChainGo is a framework for developing applications powered by language models
LocalAI
Open Source OpenAI alternative, self-host AI models
Ollama
Run large language models locally
OllamaFarm
Manage, load-balance, and failover packs of Ollamas
Audio and Music
flac
Native Go FLAC encoder/decoder with support for FLAC streams
gaad
Native Go AAC bitstream parser
GoAudio
Native Go Audio Processing Library
gosamplerate
libsamplerate bindings for go
id3v2
ID3 decoding and encoding library for Go
malgo
Mini audio library
minimp3
Lightweight MP3 decoder library
Oto
A low-level library to play sound on multiple platforms
PortAudio
Go bindings for the PortAudio audio I/O library
Authentication and OAuth
authboss
Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure it, and start building your app without having to build an authentication system each time
branca
branca token for Golang 1.15+
casbin
Authorization library that supports access control models like ACL, RBAC, and ABAC
go-guardian
Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication
go-jose
Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs
goiabada
An open-source authentication and authorization server supporting OAuth2 and OpenID Connect
gologin
chainable handlers for login with OAuth1 and OAuth2 authentication providers
gorbac
provides a lightweight role-based access control (RBAC) implementation in Golang
gosession
This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one
goth
provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box
jeff
Simple, flexible, secure, and idiomatic web session management with pluggable backends
jwt
Lightweight JSON Web Token (JWT) library
jwt
Safe, simple, and fast JSON Web Tokens for Go
jwt-auth
JWT middleware for Golang http servers with many configuration options
jwt-go
A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs
jwx
Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies
keto
Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models
loginsrv
JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam
oauth2
Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support
oidc
Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation
openfga
Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by
osin
Golang OAuth2 server library
otpgen
Library to generate TOTP/HOTP codes
otpgo
Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go
paseto
Golang implementation of Platform-Agnostic Security Tokens (PASETO)
permissions2
Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt
scope
Easily Manage OAuth2 Scopes In Go
scs
Session Manager for HTTP servers
session
Go session management for web servers (including support for Google App Engine - GAE)
sessions
Dead simple, highly performant, highly customizable sessions service for go http servers
sessionup
Simple, yet effective HTTP session management and identification package
sjwt
Simple jwt generator and parser
Blockchain
cometbft
A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm
cosmos-sdk
A Framework for Building Public Blockchains in the Cosmos Ecosystem
gno
A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains
go-ethereum
Official Go implementation of the Ethereum protocol
gosemble
A Go-based framework for building Polkadot/Substrate-compatible runtimes
gossamer
A Go implementation of the Polkadot Host
kubo
A blockchain framework implemented in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol
lnd
A complete implementation of a Lightning Network node
solana-go
Go library to interface with Solana JSON RPC and WebSocket interfaces
tendermint
High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols
Bot Building
bot
Zero-dependencies Telegram Bot library with additional UI components
echotron
An elegant and concurrent library for Telegram Bots in Go
ephemeral-roles
A Discord bot for managing ephemeral roles based upon voice channel member presence
go-chat-bot
IRC, Slack & Telegram bot written in Go
- go-joe
A general-purpose bot library inspired by Hubot but written in Go
go-sarah
Framework to build a bot for desired chat services including LINE, Slack, Gitter, and more
go-tg
Generated from official docs Go client library for accessing Telegram Bot API, with batteries for building complex bots included
go-tgbot
Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware
go-twitch-irc
Library to write bots for twitch.tv chat
Golang CryptoTrading Bot
A golang implementation of a console-based trading bot for cryptocurrency exchanges
govkbot
Simple Go bot library
hanu
Framework for writing Slack bots
Kelp
official trading and market-making bot for the DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies
larry
Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go
margelet
Framework for building Telegram bots
micha
Go Library for Telegram bot api
olivia
A chatbot built with an artificial neural network
slack-bot
Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github
slacker
Easy to use framework to create Slack bots
slackscot
Another framework for building Slack bots
tbot
Telegram bot server with API similar to net/http
telebot
Telegram bot framework is written in Go
telego
Telegram Bot API library for Golang with full one-to-one API implementation
telegram-bot-api
Simple and clean Telegram bot client
teleterm
Telegram Bot Exec Terminal Command
Tenyks
Service oriented IRC bot using Redis and JSON for messaging
wayback
A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages
Build Automation
1build
Command line tool to frictionlessly manage project-specific commands
air
Air - Live reload for Go apps
anko
Simple application watcher for multiple programming languages
gaper
Builds and restarts a Go project when it crashes or some watched file changes
- gilbert
Build system and task runner for Go projects
gob
/ like build tool for Go projects
goyek
Create build pipelines in Go
mage
Mage is a make/rake-like build tool using Go
mmake
Modern Make
realize
Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths
Task
simple "Make" alternative
taskctl
Concurrent task runner
xc
Task runner with README.md defined tasks, executable markdown
Command Line / Advanced Console UIs
asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies
aurora
ANSI terminal colors that support fmt.Printf/Sprintf
box-cli-maker
Make Highly Customized Boxes for your CLI
bubble-table
An interactive table component for bubbletea
bubbles
TUI components for bubbletea
bubbletea
Go framework to build terminal apps, based on The Elm Architecture
cfmt
Contextual fmt inspired by bootstrap color classes
cfmt
Simple and convenient formatted stylized output fully compatible with fmt library
chalk
Intuitive package for prettifying terminal/console output
colourize
Go library for ANSI colour text in terminals
crab-config-files-templating
Dynamic configuration file templating tool for kubernetes manifest or general configuration files
ctc
The non-invasive cross-platform terminal color library does not need to modify the Print method
go-ataman
Go library for rendering ANSI colored text templates in terminals
go-colorable
Colorable writer for windows
go-colortext
Go library for color output in terminals
go-isatty
isatty for golang
go-palette
Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the for nice terminal layouts
go-prompt
Library for building a powerful interactive prompt, inspired by
gocui
Minimalist Go library aimed at creating Console User Interfaces
gommon/color
Style terminal text
gookit/color
Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows
lipgloss
Declaratively define styles for color, format and layout in the terminal
marker
Easiest way to match and mark strings for colorful terminal outputs
mpb
Multi progress bar for terminal applications
progressbar
Basic thread-safe progress bar that works in every OS
pterm
A library to beautify console output on every platform with many combinable components
simpletable
Simple tables in a terminal with Go
spinner
Go package to easily provide a terminal spinner with options
tabby
A tiny library for super simple Golang tables
table
Small library for terminal color based tables
tabular
Print ASCII tables from command line utilities without the need to pass large sets of data to the API
termbox-go
Termbox is a library for creating cross-platform text-based interfaces
termdash
Go terminal dashboard based on and inspired by
termenv
Advanced ANSI style & color support for your terminal applications
termui
Go terminal dashboard based on and inspired by
uilive
Library for updating terminal output in real time
uiprogress
Flexible library to render progress bars in terminal applications
uitable
Library to improve readability in terminal apps using tabular data
yacspin
Yet Another CLi Spinner package, for working with terminal spinners
Command Line / Standard CLI
acmd
Simple, useful, and opinionated CLI package in Go
argparse
Command line argument parser inspired by Python's argparse module
argv
Go library to split command line string as arguments array using the bash syntax
carapace
Command argument completion generator for spf13/cobra
carapace-bin
Multi-shell multi-command argument completer
carapace-spec
Define simple completions using a spec file
climax
Alternative CLI with "human face", in spirit of Go command
clîr
A Simple and Clear CLI library. Dependency free
cmd
Extends the standard package to support sub commands and more in idiomatic way
cmdr
A POSIX/GNU style, getopt-like command-line UI Go library
cobra
Commander for modern Go CLI interactions
command-chain
A go library for configure and run command chains - such as pipelining in unix shells
commandeer
Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags
complete
Write bash completions in Go + Go command bash completion
console
Closed-loop application library for Cobra commands, with oh-my-posh prompts, and more
Dnote
A simple command line notebook with multi-device sync
elvish
An expressive programming language and a versatile interactive shell
env
Tag-based environment configuration for structs
flag
Simple but powerful command line option parsing library for Go supporting subcommand
flaggy
A robust and idiomatic flags package with excellent subcommand support
flagvar
A collection of flag argument types for Go's standard package
go-andotp
A CLI program to encrypt/decrypt files. Can be used as a library as well
go-arg
Struct-based argument parsing in Go
go-commander
Go library to simplify CLI workflow
go-flags
go command line option parser
go-getoptions
Go option parser inspired by the flexibility of Perl’s GetOpt::Long
gocmd
Go library for building command line applications
hashicorp/cli
Go library for implementing command-line interfaces
hiboot cli
cli application framework with auto configuration and dependency injection
job
JOB, make your short-term command as a long-term job
kingpin
Command line and flag parser supporting sub commands (superseded by ; see below)
liner
Go readline-like library for command-line interfaces
mcli
A minimal but very powerful cli library for Go
mkideal/cli
Feature-rich and easy to use command-line package based on golang struct tags
mow.cli
Go library for building CLI applications with sophisticated flag and argument parsing and validation
ops
Unikernel Builder/Orchestrator
pflag
Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags
readline
Shell library with modern and easy to use UI features
sand
Simple API for creating interpreters and so much more
sflags
Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries
strumt
Library to create prompt chain
subcmd
Another approach to parsing and running subcommands. Works alongside the standard package
survey
Build interactive and accessible prompts with full support for windows and posix terminals
teris-io/cli
Simple and complete API for building command line interfaces in Go
ts
Timestamp convert & compare tool
ukautz/clif
Small command line interface framework
urfave/cli
Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli)
version
Collects and displays CLI version information in multiple formats along with upgrade notice
wlog
Simple logging interface that supports cross-platform color and concurrency
Configuration
aconfig
Simple, useful and opinionated config loader
bcl
BCL is a configuration language similar to HCL
cleanenv
Minimalistic configuration reader (from files, ENV, and wherever you want)
config
Cloud native application configuration. Bind ENV to structs in only two lines
config
configure your app using file, environment variables, or flags in two lines of code
configuration
Library for initializing configuration structs from env variables, files, flags and 'default' tag
configure
Provides configuration through multiple sources, including JSON, flags and environment variables
configuro
opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications
confiq
Structured data format to config struct decoder library for Go - supporting multiple data formats
confita
Load configuration in cascade from multiple backends into a struct
conflate
Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema
env
Parse environment variables to Go structs (with defaults)
env
A lightweight package for loading environment variables into structs
env
An environment utility package with support for unmarshaling into structs
envconfig
Read your configuration from environment variables
envh
Helpers to manage environment variables
fig
Tiny library for reading configuration from a file and from environment variables (with validation & defaults)
genv
Read environment variables easily with dotenv support
go-array
A Go package that read or set data from map, slice or json
go-aws-ssm
Go package that fetches parameters from AWS System Manager - Parameter Store
go-cfg
The library provides a unified way to read configuration data into a structure from various sources, such as env, flags, and configuration files (.json, .yaml, .toml, .env)
go-conf
Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters
go-ini
A Go package that marshals and unmarshals INI-files
go-ssm-config
Go utility for loading configuration parameters from AWS SSM (Parameter Store)
go-up
A simple configuration library with recursive placeholders resolution and no magic
GoCfg
Config manager with Struct Tags based contracts, custom value providers, parsers, and documentation generation. Customizable yet simple
godotenv
Go port of Ruby's dotenv library (Loads environment variables from )
gofigure
Go application configuration made easy
GoLobby/Config
GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language
gone/jconf
Modular JSON configuration. Keep your config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization
gonfig
Tag-based configuration parser which loads values from different providers into typesafe struct
gookit/config
application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge
harvester
Harvester, an easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration
hjson
Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments
hocon
Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files
ingo
Flags persisted in an ini-like config file
ini
Go package to read and write INI files
ini
INI Parser & Write Library, Unmarshal to Struct, Marshal to Json, Write File, watch file
joshbetz/config
Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP
kelseyhightower/envconfig
Go library for managing configuration data from environment variables
koanf
Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line
konf
The simplest API for reading/watching config from file, env, flag and clouds (e.g. AWS, Azure, GCP)
konfig
Composable, observable and performant config handling for Go for the distributed processing era
kong
Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (successor to )
mini
Golang package for parsing ini-style configuration files
nasermirzaei89/env
Simple useful package for read environment variables
nfigure
Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML
onion
Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP
piper
Viper wrapper with config inheritance and key generation
sonic
A blazingly fast JSON serializing & deserializing library
store
Lightweight configuration manager for Go
swap
Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env)
typenv
Minimalistic, zero dependency, typed environment variables library
uConfig
Lightweight, zero-dependency, and extendable configuration management
viper
Go configuration with fangs
xdg
Go implementation of the and
xdg
Cross platform package that follows the
yamagiconf
The "safe subset" of YAML for Go configs
Continuous Integration
abstruse
Abstruse is a distributed CI platform
- Bencher
A suite of continuous benchmarking tools designed to catch performance regressions in CI
CDS
Enterprise-Grade CI/CD and DevOps Automation Open Source Platform
dot
A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages
drone
Drone is a Continuous Integration platform built on Docker, written in Go
go-beautiful-html-coverage
A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free
go-fuzz-action
Use Go 1.18's built-in fuzz testing in GitHub Actions
go-semver-release
Automate the semantic versioning of Git repositories
go-test-coverage
Tool and GitHub action which reports issues when test coverage is below set threshold
gomason
Test, Build, Sign, and Publish your go binaries from a clean workspace
gotestfmt
go test output for humans
goveralls
Go integration for Coveralls.io continuous code coverage tracking system
muffet
Fast website link checker in Go, see
overalls
Multi-Package go project coverprofile for tools like goveralls
roveralls
Recursive coverage testing tool
woodpecker
Woodpecker is a community fork of the Drone CI system
CSS Preprocessors
gcss
Pure Go CSS Preprocessor
go-libsass
Go wrapper to the 100% Sass compatible libsass project
Data Integration Frameworks
Benthos
A message streaming bridge between a range of protocols
- CloudQuery
A high-performance ELT data integration framework with pluggable architecture
omniparser
A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema
Data Structures and Algorithms / Bit-packing and Compression
bingo
Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes
binpacker
Binary packer and unpacker helps user build custom binary stream
bit
Golang set data structure with bonus bit-twiddling functions
crunch
Go package implementing buffers for handling various datatypes easily
go-ef
A Go implementation of the Elias-Fano encoding
roaring
Go package implementing compressed bitsets
Data Structures and Algorithms / Bit Sets
Data Structures and Algorithms / Bloom and Cuckoo Filters
bloom
Go package implementing Bloom filters
bloom
Bloom filters implemented in Go
bloom
Golang Bloom filter implementation
bloomfilter
Yet another Bloomfilter implementation in Go, compatible with Java's Guava library
boomfilters
Probabilistic data structures for processing continuous, unbounded streams
cuckoo-filter
Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper are available
cuckoofilter
Cuckoo filter: a good alternative to a counting bloom filter implemented in Go
ring
Go implementation of a high performance, thread safe bloom filter
Data Structures and Algorithms / Data Structure and Algorithm Collections
algorithms
Algorithms and data structures.CLRS study
go-datastructures
Collection of useful, performant, and thread-safe data structures
gods
Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc
gostl
Data structure and algorithm library for go, designed to provide functions similar to C++ STL
Data Structures and Algorithms / Iterators
Data Structures and Algorithms / Maps
cmap
a thread-safe concurrent map for go, support using as key and auto scale up shards
dict
Python-like dictionaries (dict) for Go
go-shelve
A persistent, map-like object for the Go programming language. Supports multiple embedded key-value stores
goradd/maps
Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc
Data Structures and Algorithms / Miscellaneous Data Structures and Algorithms
concurrent-writer
Highly concurrent drop-in replacement for
conjungo
A small, powerful and flexible merge library
count-min-log
Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory)
fsm
Finite-State Machine package
genfuncs
Go 1.18+ generics package inspired by Kotlin's Sequence and Map
go-generics
Generic slice, map, set, iterator, and goroutine utilities
go-geoindex
In-memory geo index
go-rampart
Determine how intervals relate to each other
go-rquad
Region quadtrees with efficient point location and neighbour finding
go-tuple
Generic tuple implementation for Go 1.18+
go18ds
Go Data Structures using Go 1.18 generics
gofal
fractional api for Go
gogu
A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library
gota
Implementation of dataframes, series, and data wrangling methods for Go
hide
ID type with marshalling to/from hash to prevent sending IDs to clients
hilbert
Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves
hyperloglog
HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction
quadtree
Generic, zero-alloc, 100%-test covered quadtree
slices
Functions that operate on slices; like but adapted to work with slices
slices
Pure, generic functions for slices
Data Structures and Algorithms / Nullable Types
Data Structures and Algorithms / Queues
deque
A highly optimized double-ended queue
deque
Fast ring-buffer deque (double-ended queue)
goconcurrentqueue
Concurrent FIFO queue
hatchet
Distributed, Fault-tolerant task queue
memlog
An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka
queue
Multiple thread-safe, generic queue implementations for Go
Data Structures and Algorithms / Sets
dsu
Disjoint Set data structure implementation in Go
golang-set
Thread-Safe and Non-Thread-Safe high-performance sets for Go
goset
A useful Set collection implementation for Go
set
Simple set data structure implementation in Go using LinkedHashMap
Data Structures and Algorithms / Text Analysis
bleve
Modern text indexing library for go
go-adaptive-radix-tree
Go implementation of Adaptive Radix Tree
go-edlib
Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode
levenshtein
Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix
levenshtein
Implementation to calculate levenshtein distance in Go
mspm
Multi-String Pattern Matching Algorithm for information retrieval
parsefields
Tools for parse JSON-like logs for collecting unique fields and events
ptrie
An implementation of prefix tree
trie
Trie implementation in Go
Data Structures and Algorithms / Trees
- hashsplit
Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position
merkle
Space-efficient computation of Merkle root hashes and inclusion proofs
skiplist
Very fast Go Skiplist implementation
skiplist
Skiplist implementation in Go
treap
Persistent, fast ordered map using tree heaps
treemap
Generic key-sorted map using a red-black tree under the hood
Data Structures and Algorithms / Pipes
ordered-concurrently
Go module that processes work concurrently and returns output in a channel in the order of input
parapipe
FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results
pipeline
An implementation of pipelines with fan-in and fan-out
Database / Caches
2q
2Q in-memory cache implementation
bcache
Eventually consistent distributed in-memory cache Go library
BigCache
Efficient key/value cache for gigabytes of data
cache
In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage
cache2go
In-memory key:value cache which supports automatic invalidation based on timeouts
cachego
Golang Cache component for multiple drivers
clusteredBigCache
BigCache with clustering support and individual item expiration
coherence-go-client
Full implementation of Oracle Coherence cache API for Go applications using gRPC as network transport
couchcache
RESTful caching micro-service backed by Couchbase server
EchoVault
Embeddable Distributed in-memory data store compatible with Redis clients
fastcache
fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead
GCache
Cache library with support for expirable Cache, LFU, LRU and ARC
gdcache
A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache
go-cache
A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern
go-freelru
A GC-less, fast and generic LRU hashmap library with optional locking, sharding, eviction and expiration
go-mcache
Fast in-memory key:value store/cache library. Pointer caches
gocache
A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more
gocache
A data race free Go ache library with high performance and auto pruge functionality
groupcache
Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases
icache
A High Performance, Generic, thread-safe, zero-dependency cache package
imcache
A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding
nscache
A Go caching framework that supports multiple data source drivers
otter
A high performance lockless cache for Go. Many times faster than Ristretto and friends
pocache
Pocache is a minimal cache package which focuses on a preemptive optimistic caching strategy
sturdyc
A caching library with advanced concurrency features designed to make I/O heavy applications robust and highly performant
theine
High performance, near optimal in-memory cache with proactive TTL expiration and generics
timedmap
Map with expiring key-value pairs
ttlcache
An in-memory cache with item expiration and generics
ttlcache
In-memory key value storage with TTL for each record
Database / Databases Implemented in Go
badger
Fast key-value store in Go
bbolt
An embedded key/value database for Go
- Bitcask
Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL)
buntdb
Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support
clover
A lightweight document-oriented NoSQL database written in pure Golang
cockroach
Scalable, Geo-Replicated, Transactional Datastore
Coffer
Simple ACID key-value database that supports transactions
column
High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions
CovenantSQL
CovenantSQL is a SQL database on blockchain
Databunker
Personally identifiable information (PII) storage service built to comply with GDPR and CCPA
dgraph
Scalable, Distributed, Low Latency, High Throughput Graph Database
diskv
Home-grown disk-backed key-value store
dolt
Dolt – It's Git for Data
dtf
A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages
eliasdb
Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language
godis
A Golang implemented high-performance Redis server and cluster
goleveldb
Implementation of the key/value database in Go
hare
A simple database management system that stores each table as a text file of line-delimited JSON
immudb
immudb is a lightweight, high-speed immutable database for systems and applications written in Go
influxdb
Scalable datastore for metrics, events, and real-time analytics
ledisdb
Ledisdb is a high performance NoSQL like Redis based on LevelDB
levigo
Levigo is a Go wrapper for LevelDB
libradb
LibraDB is a simple database with less than 1000 lines of code for learning
LinDB
LinDB is a scalable, high performance, high availability distributed time series database
lotusdb
Fast k/v database compatible with lsm and b+tree
Milvus
Milvus is a vector database for embedding management, analytics and search
moss
Moss is a simple LSM key-value storage engine written in 100% Go
nutsdb
Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set
objectbox-go
High-performance embedded Object Database (NoSQL) with Go API
pebble
RocksDB/LevelDB inspired key-value database in Go
piladb
Lightweight RESTful database engine based on stack data structures
pogreb
Embedded key-value store for read-heavy workloads
prometheus
Monitoring system and time series database
pudge
Fast and simple key/value store written using Go's standard library
redka
Redis re-implemented with SQLite
rosedb
An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset
rotom
A tiny Redis server built with Golang, compatible with RESP protocols
rqlite
The lightweight, distributed, relational database built on SQLite
tempdb
Key-value store for temporary items
tidb
TiDB is a distributed SQL database. Inspired by the design of Google F1
tiedot
Your NoSQL database powered by Golang
unitdb
Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application
Vasto
A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption
VictoriaMetrics
fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL
Database / Database Schema Migration
atlas
A Database Toolkit. A CLI designed to help companies better work with their data
avro
Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes
bytebase
Safe database schema change and version control for DevOps teams
darwin
Database schema evolution library for Go
dbmate
A lightweight, framework-agnostic database migration tool
go-fixtures
Django style fixtures for Golang's excellent built-in database/sql library
go-pg-migrate
CLI-friendly package for go-pg migrations management
go-pg-migrations
A Go package to help write migrations with go-pg/pg
goavro
A Go package that encodes and decodes Avro data
godfish
Database migration manager, works with native query language. Support for cassandra, mysql, postgres, sqlite3
goose
Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts
gorm-seeder
Simple database seeder for Gorm ORM
gormigrate
Database schema migration helper for Gorm ORM
libschema
Define your migrations separately in each library. Migrations for open source libraries. MySQL & PostgreSQL
migrate
Database migrations. CLI and Golang library
migrator
Dead simple Go database migration library
migrator
MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code
schema
Library to embed schema migrations for database/sql-compatible databases inside your Go binaries
skeema
Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools
soda
Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite
sql-migrate
Database migration tool. Allows embedding migrations into the application using go-bindata
sqlize
Database migration generator. Allows generate sql migration from model and existing sql by differ them
Database / Database Tools
chproxy
HTTP proxy for ClickHouse database
clickhouse-bulk
Collects small inserts and sends big requests to ClickHouse servers
dbbench
Database benchmarking tool with support for several databases and scripts
dg
A fast data generator that produces CSV files from generated relational data
dynago
Simplify working with AWS DynamoDB
gatewayd
Cloud-native database gateway and framework for building data-driven applications. Like API gateways, for databases
go-mysql
Go toolset to handle MySQL protocol and replication
gorm-multitenancy
Multi-tenancy support for GORM managed databases
- hasql
Library for accessing multi-host SQL database installations
octillery
Go package for sharding databases ( Supports every ORM or raw SQL )
onedump
Database backup from different drivers to different destinations with one command and configuration
pg_timetable
Advanced scheduling for PostgreSQL
pgweb
Web-based PostgreSQL database browser
prep
Use prepared SQL statements without changing your code
pREST
Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new
rdb
Redis RDB file parser for secondary development and memory analysis
rwdb
rwdb provides read replica capability for multiple database servers setup
vitess
vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services
wescale
WeScale is a database proxy designed to enhance the scalability, performance, security, and resilience of your applications
Database / SQL Query Builders
bqb
Lightweight and easy to learn query builder
buildsqlx
Go database query builder library for PostgreSQL
builq
Easily build SQL queries in Go
dbq
Zero boilerplate database operations for Go
Dotsql
Go library that helps you keep sql files in one place and use them with ease
gendry
Non-invasive SQL builder and powerful data binder
godbal
Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily
goqu
Idiomatic SQL builder and query library
gosql
SQL Query builder with better null values support
Hotcoal
Secure your handcrafted SQL against injection
igor
Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax
jet
Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure
ormlite
Lightweight package containing some ORM-like features and helpers for sqlite databases
ozzo-dbx
Powerful data retrieval methods as well as DB-agnostic query building capabilities
qry
Tool that generates constants from files with raw SQL queries
sg
A SQL Gen for generating standard SQLs(supports: CRUD) written in Go
sq
Type-safe SQL builder and struct mapper for Go
sqlc
Generate type-safe code from SQL
sqlf
Fast SQL query builder
sqlingo
A lightweight DSL to build SQL in Go
sqrl
SQL query builder, fork of Squirrel with improved performance
- Squalus
Thin layer over the Go SQL package that makes it easier to perform queries
Squirrel
Go library that helps you build SQL queries
xo
Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server
Database Drivers / Interfaces to Multiple Backends
cayley
Graph database with support for multiple backends
dsc
Datastore connectivity for SQL, NoSQL, structured files
dynamo
A simple key-value abstraction to store algebraic and linked-data data types at AWS storage services: AWS DynamoDB and AWS S3
go-transaction-manager
Transaction manager with multiple adapters (sql, sqlx, gorm, mongo, ...) controls transaction boundaries
gokv
Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more)
Database Drivers / Relational Database Drivers
avatica
Apache Avatica/Phoenix SQL driver for database/sql
bgc
Datastore Connectivity for BigQuery for go
firebirdsql
Firebird RDBMS SQL driver for Go
go-adodb
Microsoft ActiveX Object DataBase driver for go that uses database/sql
go-mssqldb
Microsoft MSSQL driver for Go
go-oci8
Oracle driver for go that uses database/sql
go-sql-driver/mysql
MySQL driver for Go
go-sqlite3
SQLite3 driver for go that uses database/sql
godror
Oracle driver for Go, using the ODPI-C driver
gofreetds
Microsoft MSSQL driver. Go wrapper over
KSQL
A Simple and Powerful Golang SQL Library
pgx
PostgreSQL driver supporting features beyond those exposed by database/sql
pig
Simple wrapper to execute and query results easily
pq
Pure Go Postgres driver for database/sql
Sqinn-Go
SQLite with pure Go
sqlhooks
Attach hooks to any database/sql driver
surrealdb.go
SurrealDB Driver for Go
ydb-go-sdk
native and database/sql driver YDB (Yandex Database)
Database Drivers / NoSQL Database Drivers
aerospike-client-go
Aerospike client in Go language
arangolite
Lightweight golang driver for ArangoDB
asc
Datastore Connectivity for Aerospike for go
forestdb
Go bindings for ForestDB
go-couchbase
Couchbase client in Go
go-mongox
A Go Mongo library based on the official driver, featuring streamlined document operations, generic binding of structs to collections, built-in CRUD, aggregation, automated field updates, struct validation, hooks, and plugin-based programming
go-pilosa
Go client library for Pilosa
go-rejson
Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease
gocb
Official Couchbase Go SDK
gocosmos
REST client and standard driver for Azure Cosmos DB
- gocql
Go language driver for Apache Cassandra
godis
redis client implement by golang, inspired by jedis
godscache
A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached
gomemcache
memcache client library for the Go programming language
gomemcached
A binary Memcached client for Go with support for sharding using consistent hashing, along with SASL
gorethink
Go language driver for RethinkDB
goriak
Go language driver for Riak KV
Kivik
Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases
mgm
MongoDB model-based ODM for Go (based on official MongoDB driver)
mgo
(unmaintained) MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms
mongo-go-driver
Official MongoDB driver for the Go language
neo4j
Neo4j Rest API Bindings for Golang
Neo4j-GO
Neo4j REST Client in golang
neoism
Neo4j client for Golang
qmgo
The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo
redeo
Redis-protocol compatible TCP servers/services
redigo
Redigo is a Go client for the Redis database
redis
Redis client for Golang
- rueidis
Fast Redis RESP3 client with auto pipelining and server-assisted client side caching
xredis
Typesafe, customizable, clean & easy to use Redis client
Database Drivers / Search and Analytic Databases
clickhouse-go
ClickHouse SQL client for Go with a compatibility
effdsl
Elasticsearch query builder for Go
elastic
Elasticsearch client for Go
elasticsql
Convert sql to elasticsearch dsl in Go
elastigo
Elasticsearch client library
go-elasticsearch
Official Elasticsearch client for Go
goes
Library to interact with Elasticsearch
skizze
probabilistic data-structures service and storage
zoekt
Fast trigram based code search
Date and Time
approx
A Duration extension supporting parsing/printing durations in days, weeks and years
carbon
A simple, semantic and developer-friendly golang package for datetime
carbon
Simple Time extension with a lot of util methods, ported from PHP Carbon library
cronrange
Parses Cron-style time range expressions, checks if the given time is within any ranges
date
Augments Time for working with dates, date ranges, time spans, periods, and time-of-day
dateparse
Parse date's without knowing format in advance
durafmt
Time duration formatting library for Go
feiertage
Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving
go-anytime
Parse dates/times like "next dec 22nd at 3pm" and ranges like "from today until next thursday" without knowing the format in advance
go-datebin
A simple datetime parse pkg
go-persian-calendar
The implementation of the Persian (Solar Hijri) Calendar in Go (golang)
go-str2duration
Convert string to duration. Support time.Duration returned string and more
go-sunrise
Calculate the sunrise and sunset times for a given location
go-week
An efficient package to work with ISO8601 week dates
gostradamus
A Go package for working with dates
iso8601
Efficiently parse ISO8601 date-times without regex
kair
Date and Time - Golang Formatting Library
now
Now is a time toolkit for golang
strftime
C99-compatible strftime formatter
timespan
For interacting with intervals of time, defined as a start time and a duration
timeutil
Useful extensions (Timedelta, Strftime, ...) to the golang's time package
tuesday
Ruby-compatible Strftime function
Distributed Systems
arpc
More effective network communication, support two-way-calling, notify, broadcast
bedrock
Provides a minimal, modular and composable foundation for quickly developing services and more use case specific frameworks in Go
capillaries
distributed batch data processing framework
celeriac
Library for adding support for interacting and monitoring Celery workers, tasks and events in Go
consistent
Consistent hashing with bounded loads
consistenthash
Consistent hashing with configurable replicas
dht
BitTorrent Kademlia DHT implementation
digota
grpc ecommerce microservice
dot
distributed sync using operational transformation/OT
doublejump
A revamped Google's jump consistent hash
dragonboat
A feature complete and high performance multi-group Raft library in Go
Dragonfly
Provide efficient, stable and secure file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures
drmaa
Job submission library for cluster schedulers based on the DRMAA standard
- dynamolock
DynamoDB-backed distributed locking implementation
dynatomic
A library for using DynamoDB as an atomic counter
emitter-io
High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love
evans
Evans: more expressive universal gRPC client
failured
adaptive accrual failure detector for distributed systems
flowgraph
flow-based programming package
gleam
Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed
glow
Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go
gmsec
A Go distributed systems development framework
go-doudou
A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity
go-eagle
A Go framework for the API or Microservice with handy scaffolding tools
go-health
Library for enabling asynchronous dependency health checks in your service
go-jump
Port of Google's "Jump" Consistent Hash function
go-kit
Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc
go-micro
A distributed systems development framework
go-mysql-lock
MySQL based distributed lock
go-pdu
A decentralized identity-based social network
go-sundheit
A library built to provide support for defining async service health checks for golang services
go-zero
A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity
gorpc
Simple, fast and scalable RPC library for high load
grpc-go
The Go language implementation of gRPC. HTTP/2 based RPC
hprose
Very newbility RPC Library, support 25+ languages now
jsonrpc
The jsonrpc package helps implement of JSON-RPC 2.0
jsonrpc
JSON-RPC 2.0 HTTP client implementation
K8gb
A cloud native Kubernetes Global Balancer
Kitex
A high-performance and strong-extensibility Golang RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice
Kratos
A modular-designed and easy-to-use microservices framework in Go
liftbridge
Lightweight, fault-tolerant message streams for NATS
lura
Ultra performant API Gateway framework with middlewares
micro
A distributed systems runtime for the cloud and beyond
mochi mqtt
Fully spec compliant, embeddable high-performance MQTT v5/v3 broker for IoT, smarthome, and pubsub
NATS
NATS is a simple, secure, and performant communications system for digital systems, services, and devices
outboxer
Outboxer is a go library that implements the outbox pattern
- pglock
PostgreSQL-backed distributed locking implementation
- pjrpc
Golang JSON-RPC Server-Client with Protobuf spec
raft
Golang implementation of the Raft consensus protocol, by HashiCorp
raft
Go implementation of the Raft consensus protocol, by CoreOS
rain
BitTorrent client and library
redis-lock
Simplified distributed locking implementation using Redis
- resgate
Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly
ringpop-go
Scalable, fault-tolerant application-layer sharding for Go applications
rpcx
Distributed pluggable RPC service framework like alibaba Dubbo
Semaphore
A straightforward (micro) service orchestrator
sleuth
Library for master-less p2p auto-discovery and RPC between HTTP services (using )
sponge
A distributed development framework that integrates automatic code generation, gin and grpc frameworks, base development frameworks
Tarmac
Framework for writing functions, microservices, or monoliths with WebAssembly
Temporal
Durable execution system for making code fault-tolerant and simple
torrent
BitTorrent client package
trpc-go
The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework
Dynamic DNS
DDNS
Personal DDNS client with Digital Ocean Networking DNS as backend
- dyndns
Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes
GoDNS
A dynamic DNS client tool, supports DNSPod & HE.net, written in Go
- chasquid
SMTP server written in Go
douceur
CSS inliner for your HTML emails
email
A robust and flexible email library for Go
email-verifier
A Go library for email verification without sending any emails
go-dkim
DKIM library, to sign & verify email
go-email-normalizer
Golang library for providing a canonical representation of email address
go-email-validator
Modular email validator for syntax, disposable, smtp, etc... checking
go-imap
IMAP library for clients and servers
go-mail
A simple Go library for sending mails in Go
go-message
Streaming library for the Internet Message Format and mail messages
go-premailer
Inline styling for HTML mail in Go
go-simple-mail
Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send
Hectane
Lightweight SMTP client providing an HTTP API
hermes
Golang package that generates clean, responsive HTML e-mails
Maddy
All-in-one (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE) email server
mailchain
Send encrypted emails to blockchain addresses written in Go
mailgun-go
Go library for sending mail with the Mailgun API
MailHog
Email and SMTP testing with web and API interface
Mailpit
Email and SMTP testing tool for developers
mailx
Mailx is a library that makes it easier to send email via SMTP. It is an enhancement of the golang standard library
mox
Modern full-featured secure mail server for low-maintenance, self-hosted email
SendGrid
SendGrid's Go library for sending email
smtp
SMTP server protocol state machine
smtpmock
Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment
truemail-go
Configurable Golang email validator/verifier. Verify email via Regex, DNS, SMTP and even more
Embeddable Scripting Languages
anko
Scriptable interpreter written in Go
binder
Go to Lua binding library, based on
cel-go
Fast, portable, non-Turing complete expression evaluation with gradual typing
ecal
A simple embeddable scripting language which supports concurrent event processing
expr
Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing
gentee
Embeddable scripting programming language
gisp
Simple LISP in Go
go-duktape
Duktape JavaScript engine bindings for Go
go-lua
Port of the Lua 5.2 VM to pure Go
go-php
PHP bindings for Go
go-python
naive go bindings to the CPython C-API
- goal
An embeddable scripting array language
goja
ECMAScript 5.1(+) implementation in Go
golua
Go bindings for Lua C API
gopher-lua
Lua 5.1 VM and compiler written in Go
gval
A highly customizable expression language written in Go
metacall
Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more
ngaro
Embeddable Ngaro VM implementation enabling scripting in Retro
prolog
Embeddable Prolog
purl
Perl 5.18.2 embedded in Go
starlark-go
Go implementation of Starlark: Python-like language with deterministic evaluation and hermetic execution
starlet
Go wrapper for that simplifies script execution, offers data conversion, and useful Starlark libraries and extensions
tengo
Bytecode compiled script language for Go
Wa/凹语言
The Wa Programming Language embedded in Go
Error Handling
emperror
Error handling tools and best practices for Go libraries and applications
eris
A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors
errlog
Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place
errors
Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives
errors
Simple golang error handling with classification primitives
errors
The most simple error wrapper with awesome performance and minimal memory overhead
- errors
Providing errors with a stack trace and optional structured details. Compatible with github.com/pkg/errors API but does not use it internally
errors
Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions
errors
Go error library with error portability over the network
errorx
A feature rich error package with stack traces, composition of errors and more
exception
A simple utility package for exception handling with try-catch in Golang
Falcon
A Simple Yet Highly Powerful Package For Error Handling
Fault
An ergonomic mechanism for wrapping errors in order to facilitate structured metadata and context for error values
go-multierror
Go (golang) package for representing a list of errors as a single error
multierr
Package for representing a list of errors as a single error
oops
Error handling with context, stack trace and source fragments
tracerr
Golang errors with stack trace and source fragments
File Handling
afero
FileSystem Abstraction System for Go
afs
Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go
baraka
A library to process http file uploads easily
bigfile
A file transfer system, support to manage files with http api, rpc call and ftp client
checksum
Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files
copy
Copy directory recursively
flop
File operations library which aims to mirror feature parity with
gdu
Disk usage analyzer with console interface
go-csv-tag
Load csv file using tag
go-decent-copy
Copy files for humans
go-exiftool
Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...)
go-gtfs
Load gtfs files in go
go-wkhtmltopdf
A package to convert an HTML template to a PDF file
gofs
A cross-platform real-time file synchronization tool out of the box
gut/yos
Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links
higgs
A tiny cross-platform Go library to hide/unhide files and directories
iso9660
A package for reading and creating ISO9660 disk images
notify
File system event notification library with simple API, similar to os/signal
opc
Load Open Packaging Conventions (OPC) files for Go
parquet
Read and write files
pathtype
Treat paths as their own type instead of using strings
pdfcpu
PDF processor
skywalker
Package to allow one to concurrently go through a filesystem with ease
todotxt
Go library for Gina Trapani's files, supports parsing and manipulating of task lists in the
vfs
A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS
Financial
accounting
money and currency formatting for golang
ach
A reader, writer, and validator for Automated Clearing House (ACH) files
bbgo
A crypto trading bot framework written in Go. Including common crypto exchange API, standard indicators, back-testing and many built-in strategies
currency
Handles currency amounts, provides currency information and formatting
currency
High performant & accurate currency computation package
decimal
Arbitrary-precision fixed-point decimal numbers
decimal
Immutable decimal numbers with panic-free arithmetic
fpdecimal
Fast and precise serialization and arithmetic for small fixed-point decimals
fpmoney
Fast and simple ISO4217 fixed-point decimal money
go-finance
Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations
go-finance
Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers
go-finnhub
Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges
go-money
Implementation of Fowler's Money pattern
go-nowpayments
Library for the crypto NOWPayments API
money
Immutable monetary amounts and exchange rates with panic-free arithmetic
ofxgo
Query OFX servers and/or parse the responses (with example command-line client)
orderbook
Matching Engine for Limit Order Book in Golang
payme
QR code generator (ASCII & PNG) for SEPA payments
sleet
One unified interface for multiple Payment Service Providers (PsP) to process online payment
- swift
Offline validity check of IBAN (International Bank Account Number) and retrieval of BIC (for some countries)
techan
Technical analysis library with advanced market analysis and trading strategies
ticker
Terminal stock watcher and stock position tracker
transaction
Embedded transactional database of accounts, running in multithreaded mode
udecimal
High performance, high precision, zero allocation fixed-point decimal library for financial applications
vat
VAT number validation & EU VAT rates
Forms
bind
Bind form data to any Go values
checker
Checker helps validating user input through rules defined in struct tags or directly through functions
conform
Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags
form
Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support
formam
decode form's values into a struct
forms
Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files
gbind
Bind data to any Go value. Can use built-in and custom expression binding capabilities; supports data validation
gorilla/csrf
CSRF protection for Go web applications & services
httpin
Decode an HTTP request into a custom struct, including querystring, forms, HTTP headers, etc
nosurf
CSRF protection middleware for Go
qs
Go module for encoding structs into URL query parameters
queryparam
Decode into usable struct values of standard or custom types
Functional
fp-go
Collection of Functional Programming helpers powered by Golang 1.18+ generics
fpGo
Monad, Functional Programming features for Golang
fuego
Functional Experiment in Go
go-functional
Functional programming in Go using generics
go-underscore
Useful collection of helpfully functional Go collection utilities
gofp
A lodash like powerful utility library for Golang
mo
Monads and popular FP abstractions, based on Go 1.18+ Generics (Option, Result, Either...)
underscore
Functional programming helpers for Go 1.18 and beyond
valor
Generic option and result types that optionally contain a value
Game Development
Azul3D
3D game engine written in Go
Ebitengine
dead simple 2D game engine in Go
ecs
Build your own Game-Engine based on the Entity Component System concept in Golang
engo
Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm
fantasyname
Fantasy names generator
g3n
Go 3D Game Engine
go-astar
Go implementation of the A* path finding algorithm
go-sdl2
Go bindings for the
go3d
Performance oriented 2D/3D math package for Go
gonet
Game server skeleton implemented with golang
goworld
Scalable game server engine, featuring space-entity framework and hot-swapping
grid
Generic 2D grid with ray-casting, shadow-casting and path finding
Harfang3D
3D engine for the Go language, works on Windows and Linux ( )
Leaf
Lightweight game server framework
nano
Lightweight, facility, high performance golang based game server framework
Oak
Pure Go game engine
Pitaya
Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK
Pixel
Hand-crafted 2D game library in Go
prototype
Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API
raylib-go
Go bindings for , a simple and easy-to-use library to learn videogames programming
termloop
Terminal-based game engine for Go, built on top of Termbox
tile
Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export
Generators
convergen
Feature rich type-to-type copy code generator
copygen
Generate type-to-type and type-based code without reflection
generis
Code generation tool providing generics, free-form macros, conditional compilation and HTML templating
go-enum
Code generation for enums from code comments
go-linq
.NET LINQ-like query methods for Go
goderive
Derives functions from input types
goverter
Generate converters by defining an interface
GoWrap
Generate decorators for Go interfaces using simple templates
interfaces
Command line tool for generating interface definitions
jennifer
Generate arbitrary Go code without templates
oapi-codegen
This package contains a set of utilities for generating Go boilerplate code for services based on OpenAPI 3.0 API definitions
typeregistry
A library to create type dynamically
Geographic
geoos
A library provides spatial data and geometric algorithms
geoserver
geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API
gismanager
Publish Your GIS Data(Vector Data) to PostGIS and Geoserver
godal
Go wrapper for GDAL
H3
Go bindings for H3, a hierarchical hexagonal geospatial indexing system
H3 GeoJSON
Conversion utilities between H3 indexes and GeoJSON
H3GeoDist
Distribution of Uber H3geo cells by virtual nodes
mbtileserver
A simple Go-based server for map tiles stored in mbtiles format
osm
Library for reading, writing and working with OpenStreetMap data and APIs
pbf
OpenStreetMap PBF golang encoder/decoder
S2 geojson
Convert geojson to s2 cells & demonstrating some S2 geometry features on map
S2 geometry
S2 geometry library in Go
simplefeatures
simplesfeatures is a 2D geometry library that provides Go types that model geometries, as well as algorithms that operate on them
Tile38
Geolocation DB with spatial index and realtime geofencing
Web-Mercator-Projection
A project to easily use and convert LonLat, Point and Tile to display info, markers, etc, in a map using the Web Mercator Projection
WGS84
Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM)
Go Compilers
Goroutines
ants
A high-performance and low-cost goroutine pool in Go
artifex
Simple in-memory job queue for Golang using worker-based dispatching
async
An asynchronous task package with async/await style for Go
async
An alternative sync library for Go (Future, Promise, Locks)
async
A safe way to execute functions asynchronously, recovering them in case of panic
async-job
AsyncJob is an asynchronous queue job manager with light code, clear and speed
breaker
Flexible mechanism to make execution flow interruptible
channelify
Transform your function to return channels for easy and powerful parallel processing
conc
is your toolbelt for structured concurrency in go, making common tasks easier and safer
concurrency-limiter
Concurrency limiter with support for timeouts, dynamic priority and context cancellation of goroutines
conexec
A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency
cyclicbarrier
CyclicBarrier for golang
execpool
A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command
flowmatic
Structured concurrency made easy
go-accumulator
Solution for accumulation of events and their subsequent processing
go-actor
A tiny library for writing concurrent programs using actor model
go-floc
Orchestrate goroutines with ease
go-flow
Control goroutines execution order
go-tools/multithreading
Manage a pool of goroutines using this lightweight library with a simple API
go-trylock
TryLock support on read-write lock for Golang
go-waitgroup
Like with error handling and concurrency control
go-workerpool
Inspired from Java Thread Pool, Go WorkerPool aims to control heavy Go Routines
go-workers
Easily and safely run workers for large data processing pipelines
goccm
Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently
gohive
A highly performant and easy to use Goroutine pool for Go
gollback
asynchronous simple function utilities, for managing execution of closures and callbacks
gowl
Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status
goworker
goworker is a Go-based background worker
gowp
gowp is concurrency limiting goroutine pool
gpool
manages a resizeable pool of context-aware goroutines to bound concurrency
grpool
Lightweight Goroutine pool
hands
A process controller used to control the execution and return strategies of multiple goroutines
Hunch
Hunch provides functions like: , , , etc., that makes asynchronous flow control more intuitive
kyoo
Provides an unlimited job queue and concurrent worker pools
neilotoole/errgroup
Drop-in alternative to , limited to a pool of N worker goroutines
nursery
Structured concurrency in Go
- oversight
Oversight is a complete implementation of the Erlang supervision trees
parallel-fn
Run functions in parallel
pond
Minimalistic and High-performance goroutine worker pool written in Go
pool
Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation
rill
Go toolkit for clean, composable, channel-based concurrency
routine
is a for go library. It encapsulates and provides some easy-to-use, non-competitive, high-performance context access interfaces, which can help you access coroutine context information more gracefully
routine
go routine control with context, support: Main, Go, Pool and some useful Executors
semaphore
Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context
semaphore
Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations)
stl
Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism
threadpool
Golang threadpool implementation
tunny
Goroutine pool for golang
worker-pool
goworker is a Go simple async worker pool
workerpool
Goroutine pool that limits the concurrency of task execution, not the number of tasks queued
GUI
app
Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress
cimgui-go
Auto generated Go wrapper for via
Cogent Core
A framework for building 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web
DarwinKit
Build native macOS applications using Go
energy
Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux)
fyne
Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android
- gio
Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly
- go-gtk
Go bindings for GTK
go-sciter
Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform
- Goey
Cross platform UI toolkit aggregator for Windows / Linux / Mac. GTK, Cocoa, Windows API
goradd/html5tag
Library for outputting HTML5 tags
gotk3
Go bindings for GTK3
gowd
Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform
qt
Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)
Spot
Reactive, cross-platform desktop GUI toolkit
ui
Platform-native GUI library for Go. Cross platform
unison
A unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported
- Wails
Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer
walk
Windows application library kit for Go
webview
Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux)
AppIndicator Go
Go bindings for libappindicator3 C library
gosx-notifier
OSX Desktop Notifications library for Go
mac-activity-tracker
OSX library to notify about any (pluggable) activity on your machine
mac-sleep-notifier
OSX Sleep/Wake notifications in golang
robotgo
Go Native cross-platform GUI system automation. Control the mouse, keyboard and other
systray
Cross platform Go library to place an icon and menu in the notification area
trayhost
Cross-platform Go library to place an icon in the host operating system's taskbar
zenity
Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user
Hardware
arduino-cli
Official Arduino CLI and library. Can run standalone, or be incorporated into larger Go projects
emgo
Go-like language for programming embedded systems (e.g. STM32 MCU)
ghw
Golang hardware discovery/inspection library
go-osc
Open Sound Control (OSC) bindings for Go
go-rpio
GPIO for Go, doesn't require cgo
goroslib
Robot Operating System (ROS) library for Go
joystick
a polled API to read the state of an attached joystick
sysinfo
A pure Go library providing Linux OS / kernel / hardware system information
Images
bild
Collection of image processing algorithms in pure Go
bimg
Small package for fast and efficient image processing using libvips
cameron
An avatar generator for Go
canvas
Vector graphics to PDF, SVG or rasterized image
color-extractor
Dominant color extractor with no external dependencies
darkroom
An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency
draft
Generate High Level Microservice Architecture diagrams for GraphViz using simple YAML syntax
geopattern
Create beautiful generative image patterns from a string
gg
2D rendering in pure Go
gift
Package of image processing filters
gltf
Efficient and robust glTF 2.0 reader, writer and validator
go-cairo
Go binding for the cairo graphics library
go-gd
Go binding for GD library
go-nude
Nudity detection with Go
go-qrcode
Generate QR codes with personalized styles, allowing adjustments to color, block size, shape, and icons
go-webcolors
Port of webcolors library from Python to Go
go-webp
Library for encode and decode webp pictures, using libwebp
gocv
Go package for computer vision using OpenCV 3.3+
goimagehash
Go Perceptual image hashing package
goimghdr
The imghdr module determines the type of image contained in a file for Go
govatar
Library and CMD tool for generating funny avatars
govips
A lightning fast image processing and resizing library for Go
gowitness
Screenshoting webpages using go and headless chrome on command line
gridder
A Grid based 2D Graphics library
image2ascii
Convert image to ASCII
imagick
Go binding to ImageMagick's MagickWand C API
imaginary
Fast and simple HTTP microservice for image resizing
imaging
Simple Go image processing package
imagor
Fast, secure image processing server and Go library, using libvips
img
Selection of image manipulation tools
ln
3D line art rendering in Go
mergi
Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate)
mort
Storage and image processing server written in Go
mpo
Decoder and conversion tool for MPO 3D Photos
picfit
An image resizing server written in Go
pt
Path tracing engine written in Go
rez
Image resizing in pure Go and SIMD
scout
Scout is a standalone open source software solution for DIY video security
smartcrop
Finds good crops for arbitrary images and crop sizes
steganography
Pure Go Library for LSB steganography
stegify
Go tool for LSB steganography, capable of hiding any file within an image
svgo
Go Language Library for SVG generation
tga
Package tga is a TARGA image format decoder/encoder
transformimgs
Transformimgs resizes and optimises images for Web using next-generation formats
webp-server
Simple and minimal image server capable of storing, resizing, converting and caching images
IoT (Internet of Things)
connectordb
Open-Source Platform for Quantified Self & IoT
devices
Suite of libraries for IoT devices, experimental for x/exp/io
ekuiper
Lightweight data stream processing engine for IoT edge
eywa
Project Eywa is essentially a connection manager that keeps track of connected devices
flogo
Project Flogo is an Open Source Framework for IoT Edge Apps & Integration
gatt
Gatt is a Go package for building Bluetooth Low Energy peripherals
gobot
Gobot is a framework for robotics, physical computing, and the Internet of Things
huego
An extensive Philips Hue client library for Go
iot
IoT is a simple framework for implementing a Google IoT Core device
mainflux
Industrial IoT Messaging and Device Management Server
- periph
Peripherals I/O to interface with low-level board facilities
rulego
RuleGo is a lightweight, high-performance, embedded, orchestrable component-based rule engine for IoT edge
sensorbee
Lightweight stream processing engine for IoT
shifu
Kubernetes native IoT development framework
smart-home
Software package for IoT automation
Job Scheduler
cdule
Job scheduler library with database support
cheek
A simple crontab like scheduler that aims to offer a KISS approach to job scheduling
clockwerk
Go package to schedule periodic jobs using a simple, fluent syntax
cronticker
A ticker implementation to support cron schedules
go-cron
Simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons
go-quartz
Simple, zero-dependency scheduling library for Go
gocron
Easy and fluent Go job scheduling. This is an actively maintained fork of
goflow
A simple but powerful DAG scheduler and dashboard
gron
Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly
gronx
Cron expression parser, task runner and daemon consuming crontab like task list
JobRunner
Smart and featureful cron job scheduler with job queuing and live monitoring built in
leprechaun
Job scheduler that supports webhooks, crons and classic scheduling
sched
A job scheduler with the ability to fast-forward time
scheduler
Cronjobs scheduling made easy
tasks
An easy to use in-process scheduler for recurring tasks in Go
JSON
ajson
Abstract JSON for golang with JSONPath support
ask
Easy access to nested values in maps and slices. Works in combination with encoding/json and other packages that "Unmarshal" arbitrary data into Go data-types
dynjson
Client-customizable JSON formats for dynamic APIs
ej
Write and read JSON from different sources succinctly
epoch
Contains primitives for marshaling/unmarshalling Unix timestamp/epoch to/from build-in time.Time type in JSON
fastjson
Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection
gabs
For parsing, creating and editing unknown or dynamic JSON in Go
gjo
Small utility to create JSON objects
GJSON
Get a JSON value with one line of code
go-jsonerror
Go-JsonError is meant to allow us to easily create json response errors that follow the JsonApi spec
go-respond
Go package for handling common HTTP JSON responses
gojmapr
Get simple struct from complex json by json path
gojq
JSON query in Golang
gojson
Automatically generate Go (golang) struct definitions from example JSON
htmljson
Rich rendering of JSON as HTML in Go
JayDiff
JSON diff utility written in Go
jettison
Fast and flexible JSON encoder for Go
jscan
High performance zero-allocation JSON iterator
- JSON-to-Go
Convert JSON to Go struct
- JSON-to-Proto
Convert JSON to Protobuf online
json2go
Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all
jsonapi-errors
Go bindings based on the JSON API errors reference
jsoncolor
Drop-in replacement for that outputs colorized JSON
jsondiff
JSON diff library for Go based on RFC6902 (JSON Patch)
jsonf
Console tool for highlighted formatting and struct query fetching JSON
jsongo
Fluent API to make it easier to create Json objects
jsonhal
Simple Go package to make custom structs marshal into HAL compatible JSON responses
jsonhandlers
JSON library to expose simple handlers that lets you easily read and write json from various sources
jsonic
Utilities to handle and query JSON without defining structs in a type safe manner
jsonvalue
A fast and convenient library for unstructured JSON data, replacing
jzon
JSON library with standard compatible API/behavior
kazaam
API for arbitrary transformation of JSON documents
mapslice-json
Go MapSlice for ordered marshal/ unmarshal of maps in JSON
marshmallow
Performant JSON unmarshalling for flexible use cases
mp
Simple cli email parser. It currently takes stdin and outputs JSON
OjG
Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath
omg.jsonparser
Simple JSON parser with validation by condition via golang struct fields tags
ujson
Fast and minimal JSON parser and transformer that works on unstructured JSON
vjson
Go package for validating JSON objects with declaring a JSON schema with fluent API
Logging
distillog
distilled levelled logging (think of it as stdlib + log levels)
glg
glg is simple and fast leveled logging library for Go
glo
PHP Monolog inspired logging facility with identical severity levels
glog
Leveled execution logs for Go
go-cronowriter
Simple writer that rotate log files automatically based on current date and time, like cronolog
go-log
A logging library with stack traces, object dumping and optional timestamps
go-log
Simple and configurable Logging in Go, with level, formatters and writers
go-log
Log lib supports level and multi handlers
go-log
Log4j implementation in Go
go-logger
Simple logger of Go Programs, with level handlers
gomol
Multiple-output, structured logging for Go with extensible logging outputs
gone/log
Fast, extendable, full-featured, std-lib source compatible log library
httpretty
Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest)
journald
Go implementation of systemd Journal's native API for logging
kemba
A tiny debug logging tool inspired by , great for CLI tools and applications
log
An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection)
log
Structured logging package for Go
log
Simple, configurable and scalable Structured Logging for Go
log
Structured log interface for Go cleanly separates logging facade from its implementation
log
Simple leveled logging wrapper around standard log package
log
A simple logging framework out of the box
log-voyage
Full-featured logging saas written in golang
log15
Simple, powerful logging for Go
logdump
Package for multi-level logging
logex
Golang log lib, supports tracking and level, wrap by standard log lib
logger
Minimalistic logging library for Go
logo
Golang logger to different configurable writers
logrus
Structured logger for Go
logrusiowriter
implementation using logger
logrusly
plug-in to send errors to a
logur
An opinionated logger interface and collection of logging best practices with adapters and integrations for well-known libraries ( , , , , etc)
logutils
Utilities for slightly better logging in Go (Golang) extending the standard logger
logxi
12-factor app logger that is fast and makes you happy
lumberjack
Simple rolling logger, implements io.WriteCloser
mlog
Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output
noodlog
Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings
onelog
Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation
ozzo-log
High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail)
phuslu/log
High performance structured logging
pp
Colored pretty printer for Go language
rollingwriter
RollingWriter is an auto-rotate implementation with multi policies to provide log file rotation
seelog
Logging functionality with flexible dispatching, filtering, and formatting
slf4g
Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks
slog
Lightweight, configurable, extensible logger for Go
slog-formatter
Common formatters for slog and helpers to build your own
slog-multi
Chain of slog.Handler (pipeline, fanout...)
- slogor
A colorful slog handler
spew
Implements a deep pretty printer for Go data structures to aid in debugging
sqldb-logger
A logger for Go SQL database driver without modify existing *sql.DB stdlib usage
stdlog
Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs
structy/log
A simple to use log system, minimalist but with features for debugging and differentiation of messages
tail
Go package striving to emulate the features of the BSD tail program
tint
A slog.Handler that writes tinted logs
xlog
Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format
xlog
Structured logger for aware HTTP handlers with flexible dispatching
xylog
Leveled and structured logging, dynamic fields, high performance, zone management, simple configuration, and readable syntax
yell
Yet another minimalistic logging library
zap
Fast, structured, leveled logging in Go
zax
Integrate Context with Zap logger, which leads to more flexibility in Go logging
zerolog
Zero-allocation JSON logger
zkits-logger
A powerful zero-dependency JSON logger
zl
High Developer Experience, zap based logger. It offers rich functionality but is easy to configure
Machine Learning
bayesian
Naive Bayesian Classification for Golang
CloudForest
Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go
ddt
Dynamic decision tree, create trees defining customizable rules
eaopt
An evolutionary optimization library
evoli
Genetic Algorithm and Particle Swarm Optimization library
fonet
A Deep Neural Network library written in Go
go-cluster
Go implementation of the k-modes and k-prototypes clustering algorithms
go-deep
A feature-rich neural network library in Go
go-fann
Go bindings for Fast Artificial Neural Networks(FANN) library
go-featureprocessing
Fast and convenient feature processing for low latency machine learning in Go
go-galib
Genetic Algorithms library written in Go / golang
go-pr
Pattern recognition package in Go lang
gobrain
Neural Networks written in go
godist
Various probability distributions, and associated methods
goga
Genetic algorithm library for Go
GoLearn
General Machine Learning library for Go
golinear
liblinear bindings for Go
GoMind
A simplistic Neural Network Library in Go
goml
On-line Machine Learning in Go
GoMLX
An accelerated Machine Learning framework for Go
gonet
Neural Network for Go
Goptuna
Bayesian optimization framework for black-box functions written in Go. Everything will be optimized
goRecommend
Recommendation Algorithms library written in Go
gorgonia
graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms
gorse
An offline recommender system backend based on collaborative filtering written in Go
goscore
Go Scoring API for PMML
gosseract
Go package for OCR (Optical Character Recognition), by using Tesseract C++ library
hugot
Huggingface transformer pipelines for golang with onnxruntime
libsvm
libsvm golang version derived work based on LIBSVM 3.14
m2cgen
A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support
neural-go
Multilayer perceptron network implemented in Go, with training via backpropagation
ocrserver
A simple OCR API server, seriously easy to be deployed by Docker and Heroku
onnx-go
Go Interface to Open Neural Network Exchange (ONNX)
probab
Probability distribution functions. Bayesian inference. Written in pure Go
randomforest
Easy to use Random Forest library for Go
regommend
Recommendation & collaborative filtering engine
shield
Bayesian text classifier with flexible tokenizers and storage backends for Go
tfgo
Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python
Varis
Golang Neural Network
Messaging
ami
Go client to reliable queues based on Redis Cluster Streams
amqp
Go RabbitMQ Client Library
APNs2
HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps
Asynq
A simple, reliable, and efficient distributed task queue for Go built on top of Redis
Beaver
A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps
Bus
Minimalist message bus implementation for internal communication
Centrifugo
Real-time messaging (Websockets or SockJS) server in Go
Chanify
A push notification server send message to your iOS devices
Commander
A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka
Confluent Kafka Golang Client
confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform
dbus
Native Go bindings for D-Bus
drone-line
Sending notifications using a binary, docker or Drone CI
emitter
Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins
event
Implementation of the pattern observer
EventBus
The lightweight event bus with async compatibility
gaurun-client
Gaurun Client written in Go
Glue
Robust Go and Javascript Socket Library (Alternative to Socket.io)
go-eventbus
Simple Event Bus package for Go
Go-MediatR
A library for handling mediator patterns and simplified CQRS patterns within an event-driven architecture, inspired by csharp MediatR library
go-mq
RabbitMQ client with declarative configuration
go-notify
Native implementation of the freedesktop notification spec
go-nsq
the official Go package for NSQ
go-res
Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate
go-socket.io
socket.io library for golang, a realtime application framework
go-vitotrol
Client library to Viessmann Vitotrol web service
Gollum
A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations
golongpoll
HTTP longpoll server library that makes web pub-sub simple
gopush-cluster
gopush-cluster is a go push server cluster
gorush
Push notification server using and google
gosd
A library for scheduling when to dispatch a message to a channel
guble
Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence
hare
A user friendly library for sending messages and listening to TCP sockets
hub
A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges
hypermatch
A very fast and efficient Go library for matching events to a large set of rules
jazz
A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages
machinery
Asynchronous task queue/job queue based on distributed message passing
mangos
Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability
melody
Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling
Mercure
Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events)
messagebus
messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD
NATS Go Client
Go client for the NATS messaging system
nsq-event-bus
A tiny wrapper around NSQ topic and channel
oplog
Generic oplog/replication system for REST APIs
pubsub
Simple pubsub package for go
Quamina
Fast pattern-matching for filtering messages and events
rabbitroutine
Lightweight library that handles RabbitMQ auto-reconnect and publishing retries. The library takes into account the need to re-declare entities in RabbitMQ after reconnection
rabbus
A tiny wrapper over amqp exchanges and queues
rabtap
RabbitMQ swiss army knife cli app
RapidMQ
RapidMQ is a lightweight and reliable library for managing of the local messages queue
Ratus
Ratus is a RESTful asynchronous task queue server
redisqueue
redisqueue provides a producer and consumer of a queue that uses Redis streams
rmqconn
RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed
sarama
Go library for Apache Kafka
Uniqush-Push
Redis backed unified push service for server-side notifications to mobile devices
Watermill
Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog
zmq4
Go interface to ZeroMQ version 4. Also available for and
Microsoft Office
unioffice
Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents
Microsoft Office / Microsoft Excel
excelize
Golang library for reading and writing Microsoft Excel™ (XLSX) files
exl
Excel binding to struct written in Go.(Only supports Go1.18+)
go-excel
A simple and light reader to read a relate-db-like excel as a table
goxlsxwriter
Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files
xlsx
Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs
xlsx
Fast and safe way to read/update your existing Microsoft Excel files in Go programs
Microsoft Office / Microsoft Word
godocx
Library for reading and writing Microsoft Word (Docx) files
Miscellaneous / Dependency Injection
alice
Additive dependency injection container for Golang
autowire
Dependency injection using Generics and reflection
- boot-go
Component-based development with dependency injection using reflections for Go developers
componego
A dependency injection framework based on components, allowing dynamic dependency replacement without duplicating code in tests
- cosban/di
A code generation based dependency injection wiring tool
di
A dependency injection container for go programming language
dig
A reflection based dependency injection toolkit for Go
dingo
A dependency injection toolkit for Go, based on Guice
do
A dependency injection framework based on Generics
fx
A dependency injection based application framework for Go (built on top of dig)
gocontainer
Simple Dependency Injection Container
goioc/di
Spring-inspired Dependency Injection Container
GoLobby/Container
GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language
gontainer
A dependency injection service container for Go projects
gontainer/gontainer
A YAML-based Dependency Injection container for GO. It supports dependencies' scopes, and auto-detection of circular dependencies. Gontainer is concurrent-safe
google/wire
Automated Initialization in Go
HnH/di
DI container library that is focused on clean API and flexibility
kinit
Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization
kod
A generics based dependency injection framework for Go
linker
A reflection based dependency injection and inversion of control library with components lifecycle support
nject
A type safe, reflective framework for libraries, tests, http endpoints, and service startup
ore
Lightweight, generic & simple dependency injection (DI) container
wire
Strict Runtime Dependency Injection for Golang
Miscellaneous / Project Layout
ardanlabs/service
A for building production grade scalable web service applications
go-blueprint
Allows users to spin up a quick Go project using a popular framework
go-module
Template for a typical module written on Go
go-sample
A sample layout for Go application projects with the real code
go-starter
An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers
go-todo-backend
Go Todo Backend example using modular project layout for product microservice
gobase
A simple skeleton for golang application with basic setup for real golang application
golang-standards/project-layout
Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see for more information. Nonetheless, some may find the layout useful
golang-templates/seed
Go application GitHub repository template
goxygen
Generate a modern Web project with Go and Angular, React, or Vue in seconds
insidieux/inizio
Golang project layout generator with plugins
kickstart.go
Minimalistic single-file Go HTTP server template without third-party dependencies
modern-go-application
Go application boilerplate and example applying modern practices
nunu
Nunu is a scaffolding tool for building Go applications
pagoda
Rapid, easy full-stack web development starter kit built in Go
scaffold
Scaffold generates a starter Go project layout. Lets you focus on business logic implemented
wangyoucao577/go-project-layout
Set of practices and discussions on how to structure Go project layout
Miscellaneous / Strings
bexp
Go implementation of Brace Expansion mechanism to generate arbitrary strings
caps
A case conversion library
- go-formatter
Implements surrounded by curly braces format strings
gobeam/Stringy
String manipulation library to convert string to camel case, snake case, kebab case / slugify etc
strcase
Case-insensitive implementation of the standard library's strings/bytes packages
strutil
String utilities
sttr
cross-platform, cli app to perform various operations on string
xstrings
Collection of useful string functions ported from other languages
Miscellaneous / Uncategorized
anagent
Minimalistic, pluggable Golang evloop/timer handler with dependency-injection
antch
A fast, powerful and extensible web crawling & scraping framework
archiver
Library and command for making and extracting .zip and .tar.gz archives
autoflags
Go package to automatically define command line flags from struct fields
avgRating
Calculate average score and rating based on Wilson Score Equation
base64Captcha
Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha
basexx
Convert to, from, and between digit strings in various number bases
battery
Cross-platform, normalized battery information library
bitio
Highly optimized bit-level Reader and Writer for Go
browscap_go
GoLang Library for
captcha
Package captcha provides an easy to use, unopinionated API for captcha generation
common
A library for server framework
conv
Package conv provides fast and intuitive conversions across Go types
datacounter
Go counters for readers/writer/http.ResponseWriter
faker
Random fake data and struct generator for Go
ffmt
Beautify data display for Humans
gatus
Automated service health dashboard
go-commandbus
A slight and pluggable command-bus for Go
go-commons-pool
Generic object pool for Golang
- go-openapi
Collection of packages to parse and utilize open-api schemas
go-resiliency
Resiliency patterns for golang
go-unarr
Decompression library for RAR, TAR, ZIP and 7z archives
gofakeit
Random data generator written in go
gommit
Analyze git commit messages to ensure they follow defined patterns
gopsutil
Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc)
gosh
Provide Go Statistics Handler, Struct, Measure Method
gosms
Your own local SMS gateway in Go that can be used to send SMS
gotoprom
Type-safe metrics builder wrapper library for the official Prometheus client
gountries
Package that exposes country and subdivision data
gtree
Provide CLI, Package and Web for tree output and directories creation from Markdown or programmatically
health
A simple and flexible health check library for Go
health
Easy to use, extensible health check library
healthcheck
An opinionated and concurrent health-check HTTP handler for RESTful services
hostutils
A golang library for packing and unpacking FQDNs list
indigo
Distributed unique ID generator of using Sonyflake and encoded by Base58
lk
A simple licensing library for golang
llvm
Library for interacting with LLVM IR in pure Go
metrics
Library for metrics instrumentation and Prometheus exposition
morse
Library to convert to and from morse code
numa
NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code
openapi
OpenAPI 3.x parser
pdfgen
HTTP service to generate PDF from Json requests
persian
Some utilities for Persian language in go
sandid
Every grain of sand on earth has its own ID
shellwords
A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell
shortid
Distributed generation of super short, unique, non-sequential, URL friendly IDs
shoutrrr
Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others
sitemap-format
A simple sitemap generator, with a little syntactic sugar
stateless
A fluent library for creating state machines
stats
Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc
turtle
Emojis for Go
url-shortener
A modern, powerful, and robust URL shortener microservice with mysql support
VarHandler
Generate boilerplate http input and output handling
varint
A faster varying length integer encoder/decoder than the one provided in the standard library
xdg
FreeDesktop.org (xdg) Specs implemented in Go
xkg
X Keyboard Grabber
xz
Pure golang package for reading and writing xz-compressed files
Natural Language Processing / Language Detection
detectlanguage
Language Detection API Go Client. Supports batch requests, short phrase or single word language detection
getlang
Fast natural language detection package
guesslanguage
Functions to determine the natural language of a unicode text
lingua-go
An accurate natural language detection library, suitable for long and short text alike. Supports detecting multiple languages in mixed-language text
whatlanggo
Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc)
Natural Language Processing / Morphological Analyzers
go-stem
Implementation of the porter stemming algorithm
go2vec
Reader and utility functions for word2vec embeddings
golibstemmer
Go bindings for the snowball libstemmer library including porter 2
gosentiwordnet
Sentiment analyzer using sentiwordnet lexicon in Go
govader
Go implementation of
govader-backend
Microservice implementation of
kagome
JP morphological analyzer written in pure Go
libtextcat
Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2
nlp
Extract values from strings and fill your structs with nlp
nlp
Go Natural Language Processing library supporting LSA (Latent Semantic Analysis)
paicehusk
Golang implementation of the Paice/Husk Stemming Algorithm
porter
This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm
porter2
Really fast Porter 2 stemmer
RAKE.go
Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE)
snowball
Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality
spaGO
Self-contained Machine Learning and Natural Language Processing library in Go
spelling-corrector
A spelling corrector for the Spanish language or create your own
Natural Language Processing / Slugifiers
go-slugify
Make pretty slug with multiple languages support
slug
URL-friendly slugify with multiple languages support
Slugify
Go slugify application that handles string
Natural Language Processing / Tokenizers
gojieba
This is a Go implementation of which a Chinese word splitting algorithm
gotokenizer
A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation)
gse
Go efficient text segmentation; support english, chinese, japanese and other
MMSEGO
This is a GO implementation of which a Chinese word splitting algorithm
prose
Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only
segment
Go library for performing Unicode Text Segmentation as described in
sentences
Sentence tokenizer: converts text into a list of sentences
shamoji
The shamoji is word filtering package written in Go
stemmer
Stemmer packages for Go programming language. Includes English and German stemmers
textcat
Go package for n-gram based text categorization, with support for utf-8 and raw text
Natural Language Processing / Translation
ctxi18n
Context aware i18n with a short and consise API, pluralization, interpolation, and support. YAML locale definitions are based on
go-i18n
Package and an accompanying tool to work with localized text
go-mystem
CGo bindings to Yandex.Mystem - russian morphology analyzer
go-pinyin
CN Hanzi to Hanyu Pinyin converter
go-words
A words table and text resource library for Golang projects
gotext
GNU gettext utilities for Go
iuliia-go
Transliterate Cyrillic → Latin in every possible way
spreak
Flexible translation and humanization library for Go, based on the concepts behind gettext
t
Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: , , etc. And it contains a cmd tool , which can extract messages as a pot file from text/html template
Natural Language Processing / Transliteration
enca
Minimal cgo bindings for , which detects character encodings
go-unidecode
ASCII transliterations of Unicode text
gounidecode
Unicode transliterator (also known as unidecode) for Go
transliterator
Provides one-way string transliteration with supporting of language-specific transliteration rules
Networking
arp
Package arp implements the ARP protocol, as described in RFC 826
bart
Package bart provides a fast routing table algorithm
buffstreams
Streaming protocolbuffer data over TCP made easy
canopus
CoAP Client/Server implementation (RFC 7252)
cidranger
Fast IP to CIDR lookup for Go
cloudflared
Cloudflare Tunnel client (formerly Argo Tunnel)
dhcp6
Package dhcp6 implements a DHCPv6 server, as described in RFC 3315
dns
Go library for working with DNS
dnsmonster
Passive DNS Capture/Monitoring Framework
easytcp
A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful
ether
Cross-platform Go package for sending and receiving ethernet frames
ethernet
Package ethernet implements marshaling and unmarshalling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags
event
Simple I/O event notification library written in Golang
fasthttp
Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http
fortio
Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC
ftp
Package ftp implements a FTP client as described in
ftpserverlib
Fully featured FTP server library
fullproxy
A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols
fwdctl
A simple and intuitive CLI to manage IPTables forwards in your Linux server
gaio
High performance async-io networking for Golang in proactor mode
gev
gev is a lightweight, fast non-blocking TCP network library based on Reactor mode
gldap
gldap provides an ldap server implementation and you provide handlers for its ldap operations
gmqtt
Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1
gnet
is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go
gnet
is a high-performance networking framework,especially for game servers
gNxI
A collection of tools for Network Management that use the gNMI and gNOI protocols
go-getter
Go library for downloading files or directories from various sources using a URL
go-multiproxy
Library for making HTTP requests through a pool of proxies offering fault tolerance, load balancing, automatic retries, cookie management, and more, via http.Get/Post replacement or http.Client RoundTripper drop-in
go-powerdns
PowerDNS API bindings for Golang
go-sse
Go client and server implementation of HTML server-sent events
go-stun
Go implementation of the STUN client (RFC 3489 and RFC 5389)
gobgp
BGP implemented in the Go Programming Language
gopacket
Go library for packet processing with libpcap bindings
gopcap
Go wrapper for libpcap
goshark
Package goshark use tshark to decode IP packet and create data struct to analyse packet
gosnmp
Native Go library for performing SNMP actions
gotcp
Go package for quickly writing tcp applications
grab
Go package for managing file downloads
graval
Experimental FTP server framework
gws
High-Performance WebSocket Server & Client With AsyncIO Supporting
HTTPLab
HTTPLabs let you inspect HTTP requests and forge responses
httpproxy
HTTP proxy handler and dialer
iplib
Library for working with IP addresses (net.IP, net.IPNet), inspired by python and ruby
jazigo
Jazigo is a tool written in Go for retrieving configuration for multiple network devices
kcp-go
KCP - Fast and Reliable ARQ Protocol
kcptun
Extremely simple & fast udp tunnel based on KCP protocol
lhttp
Powerful websocket framework, build your IM server more easily
linkio
Network link speed simulation for Reader/Writer interfaces
llb
It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response
mdns
Simple mDNS (Multicast DNS) client/server library in Golang
- mqttPaho
The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets
natiu-mqtt
A dead-simple, non-allocating, low level implementation of MQTT well suited for embedded systems
nbio
Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use
- net
This repository holds supplementary Go networking libraries
netpoll
A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance
NFF-Go
Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF)
packet
Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed
peerdiscovery
Pure Go library for cross-platform local peer discovery using UDP multicast
portproxy
Simple TCP proxy which adds CORS support to API's which don't support it
psql-wire
PostgreSQL server wire protocol. Build your own server and start serving connections
publicip
Package publicip returns your public facing IPv4 address (internet egress)
quic-go
An implementation of the QUIC protocol in pure Go
raw
Package raw enables reading and writing data at the device driver level for a network interface
sdns
A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy
sftp
Package sftp implements the SSH File Transfer Protocol as described in
ssh
Higher-level API for building SSH servers (wraps crypto/ssh)
sslb
It's a Super Simples Load Balancer, just a little project to achieve some kind of performance
stun
Go implementation of RFC 5389 STUN protocol
tcp_server
Go library for building tcp servers faster
tcpack
tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program
tspool
A TCP Library use worker pool to improve performance and protect your server
tun2socks
A pure go implementation of tun2socks powered by TCP/IP stack
utp
Go uTP micro transport protocol implementation
vssh
Go library for building network and server automation over SSH protocol
water
Simple TUN/TAP library
webhooked
A webhook receiver on steroids: handle, secure, format and store a Webhook payload has never been easier
webrtc
A pure Go implementation of the WebRTC API
winrm
Go WinRM client to remotely execute commands on Windows machines
xtcp
TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol
Networking / HTTP Clients
fast-shot
Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client
gentleman
Full-featured plugin-driven HTTP client library
go-cleanhttp
Get easily stdlib HTTP client, which does not share any state with other clients
go-http-client
Make http calls simply and easily
go-otelroundtripper
Go http.RoundTripper that emits open telemetry metrics for HTTP requests
go-req
Declarative golang HTTP client
go-retryablehttp
Retryable HTTP client in Go
go-zoox/fetch
A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API
grequests
A Go "clone" of the great and famous Requests library
heimdall
An enhanced http client with retry and hystrix capabilities
httpretry
Enriches the default go HTTP client with retry functionality
pester
Go HTTP client calls with retries, backoff, and concurrency
req
Simple Go HTTP client with Black Magic (Less code and More efficiency)
request
HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency
requests
HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools
resty
Simple HTTP and REST client for Go inspired by Ruby rest-client
rq
A nicer interface for golang stdlib HTTP client
sling
Sling is a Go HTTP client library for creating and sending API requests
OpenGL
gl
Go bindings for OpenGL (generated via glow)
glfw
Go bindings for GLFW 3
go-glmatrix
Go port of library
goxjs/gl
Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android)
goxjs/glfw
Go cross-platform glfw library for creating an OpenGL context and receiving events
mathgl
Pure Go math package specialized for 3D math, with inspiration from GLM
ORM
bob
SQL query builder and ORM/Factory generator for Go. Successor of SQLBoiler
bun
SQL-first Golang ORM. Successor of go-pg
cacheme
Schema based, typed Redis caching/memoize framework for Go
CQL
Built on top of GORM, adds compile-time verified queries based on auto-generated code
ent
An entity framework for Go. Simple, yet powerful ORM for modeling and querying data
go-dbw
A simple package that encapsulates database operations
go-firestorm
A simple ORM for Google/Firebase Cloud Firestore
go-sql
A easy ORM for mysql
go-sqlbuilder
A flexible and powerful SQL string builder library plus a zero-config ORM
go-store
Simple and fast Redis backed key-value store library for Go
golobby/orm
Simple, fast, type-safe, generic orm for developer happiness
GORM
The fantastic ORM library for Golang, aims to be developer friendly
gormt
Mysql database to golang gorm struct
gorp
Go Relational Persistence, ORM-ish library for Go
grimoire
Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3)
lore
Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go
marlow
Generated ORM from project structs for compile time safety assurances
pop/soda
Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite
Prisma
Prisma Client Go, Typesafe database access for Go
reform
Better ORM for Go, based on non-empty interfaces and code generation
rel
Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API
SQLBoiler
ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema
upper.io/db
Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers
- XORM
Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle)
Zoom
Blazing-fast datastore and querying engine built on Redis
Package Management
- go modules
Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules
glide
Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip
godep
dependency tool for go, godep helps build packages reproducibly by fixing their dependencies
goop
Simple dependency manager for Go (golang), inspired by Bundler
gop
Build and manage your Go applications out of GOPATH
gopm
Go Package Manager
govendor
Go Package Manager. Go vendor tool that works with the standard vendor file
gpm
Barebones dependency manager for Go
gup
Update binaries installed by "go install"
johnny-deps
Minimal dependency version using Git
modgv
Converts 'go mod graph' output into Graphviz's DOT language
mvn-golang
plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure
syft
A CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems
VenGO
create and manage exportable isolated go virtual environments
Performance
go-instrument
Automatically add spans to all methods and functions
jaeger
A distributed tracing system
mm-go
Generic manual memory management for golang
pixie
No instrumentation tracing for Golang applications via eBPF
profile
Simple profiling support package for Go
statsviz
Live visualization of your Go application runtime statistics
tracer
Simple, lightweight tracing
Query Language
api-fu
Comprehensive GraphQL implementation
dasel
Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies
gojsonq
A simple Go package to Query over JSON Data
goven
A drop-in query language for any database schema
gqlgen
go generate based graphql server library
grapher
A GraphQL field builder utilizing Go generics with extra utilities and features
graphql
graphql parser + utilities
graphql
GraphQL server with a focus on ease of use
graphql-go
Implementation of GraphQL for Go
gws
Apollos' "GraphQL over Websocket" client and server implementation
jsonpath
A query library for retrieving part of JSON based on JSONPath syntax
jsonql
JSON query expression library in Golang
jsonslice
Jsonpath queries with advanced filters
mql
Model Query Language (mql) is a query language for your database models
rql
Resource Query Language for REST API
rqp
Query Parser for REST API. Filtering, validations, both , operations are supported directly in the query
straf
Easily Convert Golang structs to GraphQL objects
Reflection
copy
Package for fast copying structs of different types
Deepcopier
Simple struct copying for Go
go-deepcopy
Fast deep copy library
goenum
A common enumeration struct based on generics and reflection that allows you to quickly define enumerations and use a set of useful default methods
gotype
Golang source code parsing, usage like reflect package
gpath
Library to simplify access struct fields with Go's expression in reflection
objwalker
Walk by go objects with reflection
reflectutils
Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string
Resource Embedding
debme
Create an from an existing subdirectory
fileb0x
Simple tool to embed files in go with focus on "customization" and ease to use
go-resources
Unfancy resources embedding with Go
go.rice
go.rice is a Go package that makes working with resources such as HTML, JS, CSS, images, and templates very easy
mule
Embed external resources like images, movies ... into Go source code to create single file binaries using . Focused on simplicity
packr
The simple and easy way to embed static files into Go binaries
rebed
Recreate folder structures and files from Go 1.16's type
statik
Embeds static files into a Go executable
templify
Embed external template files into Go code to create single file binaries
vfsgen
Generates a vfsdata.go file that statically implements the given virtual filesystem
Science and Data Analysis
assocentity
Package assocentity returns the average distance from words to a given entity
bradleyterry
Provides a Bradley-Terry Model for pairwise comparisons
calendarheatmap
Calendar heatmap in plain Go inspired by Github contribution activity
chart
Simple Chart Plotting library for Go. Supports many graphs types
dataframe-go
Dataframes for machine-learning and statistics (similar to pandas)
decimal
Package decimal implements arbitrary-precision decimal floating-point arithmetic
evaler
Simple floating point arithmetic expression evaluator
ewma
Exponentially-weighted moving averages
geom
2D geometry for golang
go-dsp
Digital Signal Processing for Go
go-estimate
State estimation and filtering algorithms in Go
go-gt
Graph theory algorithms written in "Go" language
go-hep
A set of libraries and tools for performing High Energy Physics analyses with ease
godesim
Extended/multivariable ODE solver framework for event-based simulations with simple API
goent
GO Implementation of Entropy Measures
gograph
A golang generic graph library that provides mathematical graph-theory and algorithms
gohistogram
Approximate histograms for data streams
gonum
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more
gonum/plot
gonum/plot provides an API for building and drawing plots in Go
goraph
Pure Go graph theory library(data structure, algorithm visualization)
gosl
Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more
GoStats
GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions
graph
Library of basic graph algorithms
jsonl-graph
Tool to manipulate JSONL graphs with graphviz support
ode
Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions
orb
2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support
pagerank
Weighted PageRank algorithm implemented in Go
piecewiselinear
Tiny linear interpolation library
PiHex
Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi
Poly
A Go package for engineering organisms
rootfinding
root-finding algorithms library for finding roots of quadratic functions
sparse
Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries
stats
Statistics package with common functions missing from the Golang standard library
streamtools
general purpose, graphical tool for dealing with streams of data
TextRank
TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support
topk
Sliding-window and regular top-K sketches, based on the HeavyKeeper algorithm
triangolatte
2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs
Security
acmetool
ACME (Let's Encrypt) client tool with automatic renewal
- acopw-go
Small cryptographically secure password generator package for Go
acra
Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system
age
A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability
argon2-hashing
light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package
argon2pw
Argon2 password hash generation with constant-time password comparison
- autocert
Auto provision Let's Encrypt certificates and start a TLS server
BadActor
In-memory, application-driven jailer built in the spirit of fail2ban
beelzebub
A secure low code honeypot framework, leveraging AI for System Virtualization
booster
Fast initramfs generator with full-disk encryption support
Cameradar
Tool and library to remotely hack RTSP streams from surveillance cameras
certificates
An opinionated tool for generating tls certificates
CertMagic
Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal
Coraza
Enterprise-ready, modsecurity and OWASP CRS compatible WAF library
dongle
A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption
encid
Encode and decode encrypted integer IDs
firewalld-rest
A rest application to dynamically update firewalld rules on a linux server
go-generate-password
Password generator that can be used on the cli or as a library
go-htpasswd
Apache htpasswd Parser for Go
go-password-validator
Password validator based on raw cryptographic entropy values
go-peer
A software library for creating secure and anonymous decentralized systems
go-yara
Go Bindings for , the "pattern matching swiss knife for malware researchers (and everyone else)"
goArgonPass
Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations
goSecretBoxPassword
A probably paranoid package for securely hashing and encrypting passwords
Interpol
Rule-based data generator for fuzzing and penetration testing
lego
Pure Go ACME client library and CLI tool (for use with Let's Encrypt)
luks.go
Pure Golang library to manage LUKS partitions
memguard
A pure Go library for handling sensitive values in memory
multikey
An n-out-of-N keys encryption/decryption framework based on Shamir's Secret Sharing algorithm
nacl
Go implementation of the NaCL set of API's
optimus-go
ID hashing and Obfuscation using Knuth's Algorithm
passlib
Futureproof password hashing library
passwap
Provides a unified implementation between different password hashing algorithms
qrand
Client for the ANU Quantum Numbers (AQN) API, providing quantum-mechanically secure random data
secret
Prevent your secrets from leaking into logs, std* etc
secure
HTTP middleware for Go that facilitates some quick security wins
secureio
An keyexchanging+authenticating+encrypting wrapper and multiplexer for based on XChaCha20-poly1305, ECDH and ED25519
simple-scrypt
Scrypt package with a simple, obvious API and automatic cost calibration built-in
ssh-vault
encrypt/decrypt using ssh keys
sslmgr
SSL certificates made easy with a high level wrapper around acme/autocert
teler-waf
teler-waf is a Go HTTP middleware that provide teler IDS functionality to protect against web-based attacks and improve the security of Go-based web applications. It is highly configurable and easy to integrate into existing Go applications
themis
high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps
Serialization
asn1
Asn.1 BER and DER encoding library for golang
bambam
generator for Cap'n Proto schemas from go
bel
Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC
binstruct
Golang binary decoder for mapping data into the structure
cbor
Small, safe, and easy CBOR encoding and decoding library
colfer
Code generation for the Colfer binary format
csvutil
High Performance, idiomatic CSV record encoding and decoding to native Go structures
elastic
Convert slices, maps or any other unknown value across different types at run-time, no matter what
fixedwidth
Fixed-width text formatting (UTF-8 supported)
fwencoder
Fixed width file parser (encoding and decoding library) for Go
go-capnproto
Cap'n Proto library and parser for go
go-codec
High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support
go-csvlib
High level and rich functionalities CSV serialization/deserialization library
gogoprotobuf
Protocol Buffers for Go with Gadgets
goprotobuf
Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers
gotiny
Efficient Go serialization library, gotiny is almost as fast as serialization libraries that generate code
jsoniter
High-performance 100% compatible drop-in replacement of "encoding/json"
mapstructure
Go library for decoding generic map values into native Go structures
php_session_decoder
GoLang library for working with PHP session format and PHP Serialize/Unserialize functions
pletter
A standard way to wrap a proto message for message brokers
structomap
Library to easily and dynamically generate maps from static structures
unitpacking
Library to pack unit vectors into as fewest bytes as possible
Server Applications
algernon
HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber
Caddy
Caddy is an alternative, HTTP/2 web server that's easy to configure and use
Clace
Clace makes internal tool deployment and management easy by implementing an app server for containerized webapps
- consul
Consul is a tool for service discovery, monitoring and configuration
cortex-tenant
Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels
devd
Local webserver for developers
discovery
A registry for resilient mid-tier load balancing and failover
dudeldu
A simple SHOUTcast server
dummy
Run mock server based off an API contract with one command
Easegress
A cloud native high availability/performance traffic orchestration system with observability and extensibility
- Engity's Bifröst
Highly customizable SSH server with several ways to authorize a user how to execute its session (local or in containers)
etcd
Highly-available key value store for shared configuration and service discovery
Euterpe
Self-hosted music streaming server with built-in web UI and REST API
Fider
Fider is an open platform to collect and organize customer feedback
Flagr
Flagr is an open-source feature flagging and A/B testing service
flipt
A self contained feature flag solution written in Go and Vue.js
go-feature-flag
A simple, complete and lightweight self-hosted feature flag solution 100% Open Source
go-proxy-cache
Simple Reverse Proxy with Caching, written in Go, using Redis
gondola
A YAML based golang reverse proxy
jackal
An XMPP server written in Go
lets-proxy2
Reverse proxy for handle https with issue certificates in fly from lets-encrypt
minio
Minio is a distributed object storage server
Moxy
Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint
nginx-prometheus
Nginx log parser and exporter to Prometheus
- nsq
A realtime distributed messaging platform
pocketbase
PocketBase is a realtime backend in 1 file consisting of embedded database (SQLite) with realtime subscriptions, built-in auth management and much more
protoxy
A proxy server that converts JSON request bodies to Protocol Buffers
psql-streamer
Stream database events from PostgreSQL to Kafka
riemann-relay
Relay to load-balance Riemann events and/or convert them to Carbon
RoadRunner
High-performance PHP application server, load-balancer and process manager
SFTPGo
Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage
simple-jwt-provider
Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management
Trickster
HTTP reverse proxy cache and time series accelerator
Wish
Make SSH apps, just like that!
Stream Processing
go-streams
Go stream processing library
goio
An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2
machine
Go library for writing and generating stream workers with built in metrics and traceability
stream
Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce
Template Engines
ego
Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled
extemplate
Tiny wrapper around html/template to allow for easy file-based template inheritance
fasttemplate
Simple and fast template engine. Substitutes template placeholders up to 10x faster than
- gomponents
HTML 5 components in pure Go, that look something like this:
got
A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more
goview
Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application
- htmgo
build simple and scalable systems with go + htmx
jet
Jet template engine
liquid
Go implementation of Shopify Liquid templates
maroto
A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple
pongo2
Django-like template-engine for Go
quicktemplate
Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it
raymond
Complete handlebars implementation in Go
Razor
Razor view engine for Golang
Soy
Closure templates (aka Soy templates) for Go, following the
sprout
Useful template functions for Go templates
tbd
A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata
templ
A HTML templating language that has great developer tooling
Testing / Testing Frameworks
- apitest
Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams
arch-go
Architecture testing tool for Go projects
assert
Basic Assertion Library used along side native go testing, with building blocks for custom assertions
baloo
Expressive and versatile end-to-end HTTP API testing made easy
be
The minimalist generic test assertion library
biff
Bifurcation testing framework, BDD compatible
charlatan
Tool to generate fake interface implementations for tests
commander
Tool for testing cli applications on windows, linux and osx
cupaloy
Simple snapshot testing addon for your test framework
dbcleaner
Clean database for testing purpose, inspired by in Ruby
dft
Lightweight, zero dependency docker containers for testing (or more)
dsunit
Datastore testing for SQL, NoSQL, structured files
embedded-postgres
Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test
endly
Declarative end to end functional testing
envite
Dev and testing environment management framework
fixenv
Fixture manage engine, inspired by pytest fixtures
fluentassert
Extensible, type-safe, fluent assertion Go library
flute
HTTP client testing framework
frisby
REST API testing framework
gherkingen
BDD boilerplate generator and framework
- ginkgo
BDD Testing Framework for Go
gnomock
integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks
go-carpet
Tool for viewing test coverage in terminal
go-cmp
Package for comparing Go values in tests
go-hit
Hit is an http integration test framework written in golang
go-mutesting
Mutation testing for Go source code
go-mysql-test-container
Golang MySQL testcontainer to help with MySQL integration testing
- go-snaps
Jest-like snapshot testing in Golang
go-testdeep
Extremely flexible golang deep comparison, extends the go testing package
go-testpredicate
Test predicate style assertions library with extensive diagnostics output
go-vcr
Record and replay your HTTP interactions for fast, deterministic and accurate tests
goblin
Mocha like testing framework of Go
goc
Goc is a comprehensive coverage testing system for The Go Programming Language
- gocheck
More advanced testing framework alternative to gotest
GoConvey
BDD-style framework with web UI and live reload
gocrest
Composable hamcrest-like matchers for Go assertions
godog
Cucumber BDD framework for Go
gofight
API Handler Testing for Golang Router framework
gogiven
YATSPEC-like BDD testing framework for Go
gomatch
library created for testing JSON against patterns
- gomega
Rspec like matcher/assertion library
Gont
Go network testing toolkit for testing building complex network topologies using Linux namespaces
gospecify
This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec
gosuite
Brings lightweight test suites with setup/teardown facilities to by leveraging Go1.7's Subtests
got
An enjoyable golang test framework
gotest.tools
A collection of packages to augment the go testing package and support common patterns
Hamcrest
fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results
httpexpect
Concise, declarative, and easy to use end-to-end HTTP and REST API testing
is
Professional lightweight testing mini-framework for Go
jsonassert
Package for verifying that your JSON payloads are serialized correctly
keploy
Generate Testcase and Data Mocks from API calls automatically
omg.testingtools
The simple library for change a values of private fields for testing
restit
Go micro framework to help writing RESTful API integration test
schema
Quick and easy expression matching for JSON schemas used in requests and responses
stop-and-go
Testing helper for concurrency
testcase
Idiomatic testing framework for Behavior Driven Development
testcerts
Dynamically generate self-signed certificates and certificate authorities within your test functions
testcontainers-go
A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done
testfixtures
A helper for Rails' like test fixtures to test database applications
Testify
Sacred extension to the standard go testing package
testsql
Generate test data from SQL files before testing and clear it after finished
testza
Full-featured test framework with nice colorized output
trial
Quick and easy extendable assertions without introducing much boilerplate
Tt
Simple and colorful test tools
wstest
Websocket client for unit-testing a websocket http.Handler
Testing / Mock
counterfeiter
Tool for generating self-contained mock objects
- genmock
Go mocking system with code generator for building calls of the interface methods
go-localstack
Tool for using localstack in AWS testing
go-sqlmock
Mock SQL driver for testing database interactions
go-txdb
Single transaction based database driver mainly for testing purposes
gock
Versatile HTTP mocking made easy
gomock
Mocking framework for the Go programming language
govcr
HTTP mock for Golang: record and replay HTTP interactions for offline testing
hoverfly
HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI
httpmock
Easy mocking of HTTP responses from external resources
minimock
Mock generator for Go interfaces
mockery
Tool to generate Go interfaces
mockhttp
Mock object for Go http.ResponseWriter
mooncake
A simple way to generate mocks for multiple purposes
moq
Utility that generates a struct from any interface. The struct can be used in test code as a mock of the interface
timex
A test-friendly replacement for the native package
xgo
A general pureposed function mocking library
Testing / Fuzzing and delta-debugging/reducing/shrinking
Testing / Selenium and browser control tools
cdp
Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it
chromedp
a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol
ggr
a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs
playwright-go
browser automation library to control Chromium, Firefox and WebKit with a single API
rod
A Devtools driver to make web automation and scraping easy
selenoid
alternative Selenium hub server that launches browsers within containers
Testing / Fail injection
failpoint
An implementation of for Golang
Text Processing / Formatters
address
Handles address representation, validation and formatting
align
A general purpose application that aligns text
bytes
Formats and parses numeric byte values (10K, 2M, 3G, etc.)
go-fixedwidth
Fixed-width text formatting (encoder/decoder with reflection)
go-humanize
Formatters for time, numbers, and memory size to human readable format
gotabulate
Easily pretty-print your tabular data with Go
textwrap
Wraps text at end of lines. Implementation of module from Python
Text Processing / Markup Languages
bafi
Universal JSON, BSON, YAML, XML translator to ANY format using templates
bbConvert
Converts bbCode to HTML that allows you to add support for custom bbCode tags
blackfriday
Markdown processor in Go
go-output-format
Output go structures into multiple formats (YAML/JSON/etc) in your command line app
go-toml
Go library for the TOML format with query support and handy cli tools
goldmark
A Markdown parser written in Go. Easy to extend, standard (CommonMark) compliant, well structured
goq
Declarative unmarshalling of HTML using struct tags with jQuery syntax (uses GoQuery)
html-to-markdown
Convert HTML to Markdown. Even works with entire websites and can be extended through rules
htmlquery
An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression
htmlyaml
Rich rendering of YAML as HTML in Go
htree
Traverse, navigate, filter, and otherwise process trees of objects
mxj
Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages
toml
TOML configuration format (encoder/decoder with reflection)
Text Processing / Parsers/Encoders/Decoders
allot
Placeholder and wildcard text parsing for CLI tools and bots
codetree
Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure
commonregex
A collection of common regular expressions for Go
did
DID (Decentralized Identifiers) Parser and Stringer in Go
doi
Document object identifier (doi) parser in Go
editorconfig-core-go
Editorconfig file parser and manipulator for Go
encdec
Package provides a generic interface to encoders and decoders
go-fasttld
High performance effective top level domains (eTLD) extraction module
go-nmea
NMEA parser library for the Go language
go-querystring
Go library for encoding structs into URL query parameters
go-vcard
Parse and format vCard
godump
Pretty print any GO variable with ease, an alternative to Go's
gofeed
Parse RSS and Atom feeds in Go
gographviz
Parses the Graphviz DOT language
gonameparts
Parses human names into individual name parts
ltsv
High performance reader for Go
normalize
Sanitize, normalize and compare fuzzy text
parseargs-go
string argument parser that understands quotes and backslashes
parth
URL path segmentation parsing
prattle
Scan and parse LL(1) grammars simply and efficiently
sdp
SDP: Session Description Protocol [ ]
sh
Shell parser and formatter
tokenizer
Parse any string, slice or infinite buffer to any tokens
vdf
A Lexer and Parser for Valves Data Format (known as vdf) written in Go
when
Natural EN and RU language date/time parser with pluggable rules
xj2go
Convert xml or json to go struct
Text Processing / Regular Expressions
genex
Count and expand Regular Expressions into all matching Strings
go-wildcard
Simple and lightweight wildcard pattern matching
goregen
Library for generating random strings from regular expressions
regroup
Match regex expression named groups into go struct using struct tags and automatic parsing
rex
Regular expressions builder
Text Processing / Sanitation
bluemonday
HTML Sanitizer
gofuckyourself
A sanitization-based swear filter for Go
Text Processing / Scrapers
colly
Fast and Elegant Scraping Framework for Gophers
dataflowkit
Web scraping Framework to turn websites into structured data
go-recipe
A package for scraping recipes from websites
GoQuery
GoQuery brings a syntax and a set of features similar to jQuery to the Go language
pagser
Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler
Tagify
Produces a set of tags from given source
walker
Seamlessly fetch paginated data from any source. Simple and high performance API scraping included
xurls
Extract urls from text
Text Processing / RSS
podcast
iTunes Compliant and RSS 2.0 Podcast Generator in Golang
Text Processing / Utility/Miscellaneous
go-runewidth
Functions to get fixed width of the character or string
go-zero-width
Zero-width character detection and removal for Go
kace
Common case conversions covering common initialisms
petrovich
Petrovich is the library which inflects Russian names to given grammatical case
radix
Fast string sorting algorithm
TySug
Alternative suggestions with respect to keyboard layouts
w2vgrep
A semantic grep tool using word embeddings to find semantically similar matches. For example, searching for "death" will find "dead", "killing", "murder"
Third-party APIs
airtable
Go client library for the
anaconda
Go client library for the Twitter 1.1 API
appstore-sdk-go
Unofficial Golang SDK for AppStore Connect API
aws-encryption-sdk-go
Unofficial Go SDK implementation of the
aws-sdk-go
The official AWS SDK for the Go programming language
bqwriter
High Level Go Library to write data into at a high throughout
brewerydb
Go library for accessing the BreweryDB API
cachet
Go client library for
circleci
Go client library for interacting with CircleCI's API
clarifai
Go client library for interfacing with the Clarifai API
codeship-go
Go client library for interacting with Codeship's API v2
coinpaprika-go
Go client library for interacting with Coinpaprika's API
device-check-go
Go client library for interacting with v1
discordgo
Go bindings for the Discord Chat API
disgo
Go API Wrapper for the Discord API
dusupay-sdk-go
Unofficial Dusupay payment gateway API Client for Go
ethrpc
Go bindings for Ethereum JSON RPC API
facebook
Go Library that supports the Facebook Graph API
fasapay-sdk-go
Unofficial Fasapay payment gateway XML API Client for Golang
fcm
Go library for Firebase Cloud Messaging
gads
Google Adwords Unofficial API
gami
Go library for Asterisk Manager Interface
gcm
Go library for Google Cloud Messaging
geo-golang
Go Library to access , , , , , , and geocoding / reverse geocoding APIs
github
Go library for accessing the GitHub REST API v3
githubql
Go library for accessing the GitHub GraphQL API v4
go-atlassian
Go library for accessing the services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud)
go-aws-news
Go application and library to fetch what's new from AWS
go-chronos
Go library for interacting with the Job Scheduler
go-gerrit
Go cient library for
go-hacknews
Tiny Go client for HackerNews API
go-here
Go client library around the HERE location based APIs
go-hibp
Simple Go binding to the "Have I Been Pwned" APIs
go-imgur
Go client library for
go-jira
Go client library for
go-lark
An easy-to-use unofficial SDK for and Open Platform
go-marathon
Go library for interacting with Mesosphere's Marathon PAAS
go-myanimelist
Go client library for accessing the
go-openai
OpenAI ChatGPT, DALL·E, Whisper API library for Go
go-openproject
Go client library for interacting with API
go-postman-collection
Go module to work with (compatible with Insomnia)
go-redoc
Embedded OpenAPI/Swagger documentation ui for Go using
go-restcountries
Go library for the
go-salesforce
Go client library for interacting with the
go-sophos
Go client library for the with zero dependencies
go-swagger-ui
Go library containing precompiled for serving swagger json
- go-telegraph
Telegraph publishing platform API client
go-trending
Go library for accessing and at Github
go-twitter
Go client library for the Twitter v1.1 APIs
go-unsplash
Go client library for the API
go-xkcd
Go client for the xkcd API
- go-yapla
Go client library for the Yapla v2.0 API
goagi
Go library to build Asterisk PBX agi/fastagi applications
goami2
AMI v2 library for Asterisk PBX
GoFreeDB
Golang library providing common and simple database abstractions on top of Google Sheets
gogtrends
Google Trends Unofficial API
golang-tmdb
Golang wrapper for The Movie Database API v3
golyrics
Golyrics is a Go library to fetch music lyrics data from the Wikia website
GoMusicBrainz
Go MusicBrainz WS2 client library
google
Auto-generated Google APIs for Go
google-analytics
Simple wrapper for easy google analytics reporting
google-cloud
Google Cloud APIs Go Client Library
google-email-audit-api
Go client library for
google-play-scraper
Get data from Google Play Store
gopaapi5
Go Client Library for
gosip
Client library for SharePoint
gostorm
GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells
hipchat
This project implements a golang client library for the Hipchat API
hipchat (xmpp)
A golang package to communicate with HipChat over XMPP
igdb
Go client for the
ip2location-io-go
Go wrapper for the IP2Location.io API
jokeapi-go
Go client for
lark
/ Open API Go SDK, Support ALL Open API and Event Callback
lastpass-go
Go client library for the API
libgoffi
Library adapter toolbox for native integration
Medium
Golang SDK for Medium's OAuth2 API
megos
Client library for accessing an cluster
minio-go
Minio Go Library for Amazon S3 compatible cloud storage
mixpanel
Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications
newsapi-go
Go client for
openaigo
OpenAI GPT3/GPT3.5 ChatGPT API client library for Go
patreon-go
Go library for Patreon API
paypal
Wrapper for PayPal payment API
playlyfe
The Playlyfe Rest API Go SDK
pushover
Go wrapper for the Pushover API
rawg-sdk-go
Go library for the API
rrdaclient
Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP
shopify
Go Library to make CRUD request to the Shopify API
simples3
Simple no frills AWS S3 Library using REST with V4 Signing written in Go
slack
Slack API in Go
smite
Go package to wraps access to the Smite game API
spotify
Go Library to access Spotify WEB API
steam
Go Library to interact with Steam game servers
stripe
Go client for the Stripe API
swag
No comments, simple go wrapper to create swagger 2.0 compatible APIs. Support most routing frameworks, such as built-in, gin, chi, mux, echo, httprouter, fasthttp and more
textbelt
Go client for the textbelt.com txt messaging API
translate
Go online translation package
Trello
Go wrapper for the Trello API
TripAdvisor
Go wrapper for the TripAdvisor API
tumblr
Go wrapper for the Tumblr v2 API
twitter-scraper
Scrape the Twitter Frontend API without authentication and limits
uptimerobot
Go wrapper and command-line client for the Uptime Robot v2 API
vl-go
Go client library around the VerifID identity verification layer API
webhooks
Webhook receiver for GitHub and Bitbucket
wit-go
Go client for wit.ai HTTP API
ynab
Go wrapper for the YNAB API
zooz
Go client for the Zooz API
Utilities
apm
Process manager for Golang applications with an HTTP API
backscanner
A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward
bed
A Vim-like binary editor written in Go
blank
Verify or remove blanks and whitespace from strings
bleep
Perform any number of actions on any set of OS signals in Go
boilr
Blazingly fast CLI tool for creating projects from boilerplate templates
changie
Automated changelog tool for preparing releases with lots of customization options
chyle
Changelog generator using a git repository with multiple configuration possibilities
circuit
An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern
circuitbreaker
Circuit Breakers in Go
clipboard
📋 cross-platform clipboard package in Go
clockwork
A simple fake clock for golang
cmd
Library for executing shell commands on osx, windows and linux
command
Command pattern for Go with thread safe serial and parallel dispatcher
config-file-validator
Cross Platform tool to validate configuration files
copy-pasta
Universal multi-workstation clipboard that uses S3 like backend for the storage
countries
Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards
countries
All you need when you are working with countries in Go
create-go-app
A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command
cryptgo
Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time!
ctop
interface (e.g. htop) for container metrics
ctxutil
A collection of utility functions for contexts
cvt
Easy and safe convert any value to another type
dbt
A framework for running self-updating signed binaries from a central, trusted repository
Death
Managing go application shutdown with signals
delve
Go debugger
dive
A tool for exploring each layer in a Docker image
dlog
Compile-time controlled logger to make your release smaller without removing debug calls
EaseProbe
A simple, standalone, and lightWeight tool that can do health/status checking daemon, support HTTP/TCP/SSH/Shell/Client/... probes, and Slack/Discord/Telegram/SMS... notification
equalizer
Quota manager and rate limiter collection for Go
ergo
The management of multiple local services running over different ports made easy
evaluator
Evaluate an expression dynamically based on s-expression. It's simple and easy to extend
Failsafe-go
Fault tolerance and resilience patterns for Go
filetype
Small package to infer the file type checking the magic numbers signature
filler
small utility to fill structs using "fill" tag
filter
provide filtering, sanitizing, and conversion of Go data
fzf
Command-line fuzzy finder written in Go
generate
runs go generate recursively on a specified path or environment variable and can filter by regex
ghokin
Parallelized formatter with no external dependencies for gherkin (cucumber, behat...)
git-time-metric
Simple, seamless, lightweight time tracking for Git
gitbatch
manage your git repositories in one place
gitcs
Git Commits Visualizer, CLI tool to visualize your Git commits on your local machine
go-actuator
Production ready features for Go based web frameworks
go-astitodo
Parse TODOs in your GO code
go-bind-plugin
go:generate tool for wrapping symbols exported by golang plugins (1.8 only)
go-bsdiff
Pure Go bsdiff and bspatch libraries and CLI tools
go-clip
A minimalistic clipboard manager for Mac
go-convert
Package go-convert enables you to convert a value into another type
go-countries
Lightweight lookup over ISO-3166 codes
go-dry
DRY (don't repeat yourself) package for Go
go-events
A go event and event'subscribe package, like wordpress hook functions
go-funk
Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...)
go-health
Health package simplifies the way you add health check to your services
go-httpheader
Go library for encoding structs into Header fields
go-lambda-cleanup
A CLI for removing unused or previous versions of AWS Lambdas
go-lock
go-lock is a lock library implementing read-write mutex and read-write trylock without starvation
go-pattern-match
A Pattern matching library inspired by ts-pattern
go-pkg
A go toolkit
go-problemdetails
Go package for working with Problem Details
go-qr
A native, high-quality and minimalistic QR code generator
go-rate
Timed rate limiter for Go
go-sitemap-generator
XML Sitemap generator written in Go
go-trigger
Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project
go-tripper
Tripper is a circuit breaker package for Go that allows you to circuit and control the status of circuits
go-type
Library providing Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types
goback
Go simple exponential backoff package
goctx
Get your context value with high performance
godaemon
Utility to write daemons
godropbox
Common libraries for writing Go services/applications from Dropbox
gofn
High performance utility functions written using Generics for Go 1.18+
golarm
Fire alarms with system events
golog
Easy and lightweight CLI tool to time track your tasks
gopencils
Small and simple package to easily consume REST APIs
goplaceholder
a small golang lib to generate placeholder images
goreadability
Webpage summary extractor using Facebook Open Graph and arc90's readability
goreleaser
Deliver Go binaries as fast and easily as possible
goreporter
Golang tool that does static analysis, unit testing, code review and generate code quality report
goseaweedfs
SeaweedFS client library with almost full features
gostrutils
Collections of string manipulation and conversion functions
gotenv
Load environment variables from or any in Go
goval
Evaluate arbitrary expressions in Go
graterm
Provides primitives to perform ordered (sequential/concurrent) GRAceful TERMination (aka shutdown) in Go application
grofer
A system and resource monitoring tool written in Golang!
gubrak
Golang utility library with syntactic sugar. It's like lodash, but for golang
handy
Many utilities and helpers like string handlers/formatters and validators
hostctl
A CLI tool to manage /etc/hosts with easy commands
htcat
Parallel and Pipelined HTTP GET Utility
hub
wrap git commands with additional functionality to interact with github from the terminal
immortal
*nix cross-platform (OS agnostic) supervisor
jet
Just Edit Text: a fast and powerful tool for finding and replacing file content and names using regular expressions
jsend
JSend's implementation written in Go
json-log-viewer
Interactive viewer for JSON logs
jump
Jump helps you navigate faster by learning your habits
just
Just a collection of useful functions for working with generic data structures
koazee
Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays
lancet
A comprehensive, efficient, and reusable util function library of go
lets-go
Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities
limiters
Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks
lo
A Lodash like Go library based on Go 1.18+ Generics (map, filter, contains, find...)
loncha
A high-performance slice Utilities
lrserver
LiveReload server for Go
mani
CLI tool to help you manage multiple repositories
mc
Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems
mergo
Helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements
mimemagic
Pure Go ultra performant MIME sniffing library/utility
mimesniffer
A MIME type sniffer for Go
mimetype
Package for MIME type detection based on magic numbers
minify
Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats
minquery
MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off)
moldova
Utility for generating random data based on an input template
mole
cli app to easily create ssh tunnels
mongo-go-pagination
Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines
mssqlx
Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind
multitick
Multiplexor for aligned tickers
myhttp
Simple API to make HTTP GET requests with timeout support
netbug
Easy remote profiling of your services
nfdump
Read nfdump netflow files
nostromo
CLI for building powerful aliases
okrun
go run error steamroller
olaf
Twitter Snowflake implemented in Go
onecache
Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc)
panicparse
Groups similar goroutines and colorizes stack dump
pattern-match
Pattern matching library
peco
Simplistic interactive filtering tool
pgo
Convenient functions for PHP community
pm
Process (i.e. goroutine) manager with an HTTP API
pointer
Package pointer contains helper routines for simplifying the creation of optional fields of basic type
ptr
Package that provide functions for simplified creation of pointers from constants of basic types
rclient
Readable, flexible, simple-to-use client for REST APIs
remote-touchpad
Control mouse and keyboard from a smartphone
repeat
Go implementation of different backoff strategies useful for retrying operations and heartbeating
request
Go HTTP Requests for Humans™
rerun
Recompiling and rerunning go apps when source changes
rest-go
A package that provide many helpful methods for working with rest api
retry
The most advanced functional mechanism to perform actions repetitively until successful
retry
A simple but highly configurable retry package for Go
retry
Simple and easy retry mechanism package for Go
retry
A pretty simple library to ensure your work to be done
retry-go
Simple library for retry mechanism
retry-go
Retrying made simple and easy for golang
robustly
Runs functions resiliently, catching and restarting panics
rospo
Simple and reliable ssh tunnels with embedded ssh server in Golang
scan
Scan golang directly to structs, slices, or primitive types
scan
Scan sql rows into any type powered by generics
scany
Library for scanning data from a database into Go structs and more
serve
A static http server anywhere you need
sesh
Sesh is a CLI that helps you create and manage tmux sessions quickly and easily using zoxide
set
Performant and flexible struct mapping and loose type conversion
shutdown
App shutdown hooks for handling
silk
Read silk netflow files
slice
Type-safe functions for common Go slice operations
sliceconv
Slice conversion between primitive types
slicer
Makes working with slices easier
sorty
Fast Concurrent / Parallel Sorting
sqlx
provides a set of extensions on top of the excellent built-in database/sql package
sshman
SSH Manager for authorized_keys files on multiple remote servers
statiks
Fast, zero-configuration, static HTTP filer server
Storm
Simple and powerful toolkit for BoltDB
structs
Implement simple functions to manipulate structs
throttle
Throttle is an object that will perform exactly one action per duration
tik
Simple and easy timing wheel package for Go
tome
Tome was designed to paginate simple RESTful APIs
toolbox
Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer
UNIS
Common Architecture™ for String Utilities in Go
upterm
A tool for developers to share terminal/tmux sessions securely over the web. It’s perfect for remote pair programming, accessing computers behind NATs/firewalls, remote debugging, and more
usql
usql is a universal command-line interface for SQL databases
util
Collection of useful utility functions. (strings, concurrency, manipulations, ...)
watchhttp
Run command periodically and expose latest STDOUT or its rich delta as HTTP endpoint
wifiqr
Wi-Fi QR Code Generator
wuzz
Interactive cli tool for HTTP inspection
xferspdy
Xferspdy provides binary diff and patch library in golang
yogo
Check yopmail mails from command line
UUID
fastuuid
Fast generate UUIDv4 as string or bytes
goid
Generate and Parse RFC4122 compliant V4 UUIDs
gouid
Generate cryptographically secure random string IDs with just one allocation
nanoid
A tiny and efficient Go unique string ID generator
sno
Compact, sortable and fast unique IDs with embedded metadata
ulid
Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier)
- uniq
No hassle safe, fast unique identifiers with commands
uuid
Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier
uuid
Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid
uuid
Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services
uuidcheck
A tiny, dependency-free Go library that validates UUIDs against standard RFC 4122 formatting, converts UUIDv7() into UTC timestamps
wuid
An extremely fast globally unique number generator
xid
Xid is a globally unique id generator library, ready to be safely used directly in your server code
Validation
checkdigit
Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.)
go-validator
Validation library using Generics
gody
A lightweight struct validator for Go
govalid
Fast, tag-based validation for structs
govalidator
Validators and sanitizers for strings, numerics, slices and structs
govalidator
Validate Golang request data with simple rules. Highly inspired by Laravel's request validation
hvalid
hvalid is a lightweight validation library written in Go language. It provides a custom validator interface and a series of common validation functions to help developers quickly implement data validation
jio
jio is a json schema validator similar to
ozzo-validation
Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags
validate
Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features
validate
This package provides a framework for writing validations for Go applications
validator
Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
Validator
A lightweight model validator written in Go.Contains VFs:Min, Max, MinLength, MaxLength, Length, Enum, Regex
valix
Go package for validating requests
Zog
A inspired schema builder for runtime value parsing and validation
Version Control
- cli
An open-source GitLab command line tool bringing GitLab's cool features to your command line
froggit-go
Froggit-Go is a Go library, allowing to perform actions on VCS providers
git2go
Go bindings for libgit2
githooks
Per-repo and shared Git hooks with version control and auto update
go-git
highly extensible Git implementation in pure Go
go-vcs
manipulate and inspect VCS repositories in Go
hercules
gaining advanced insights from Git repository history
hgo
Hgo is a collection of Go packages providing read-access to local Mercurial repositories
Video
gmf
Go bindings for FFmpeg av* libraries
go-astiav
Better C bindings for ffmpeg in GO
go-astisub
Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.)
go-astits
Parse and demux MPEG Transport Streams (.ts) natively in GO
go-m3u8
Parser and generator library for Apple m3u8 playlists. Actively maintained version of quangngotan95/go-m3u8 with improvements and latest HLS playlist parsing compatibility
go-mpd
Parser and generator library for MPEG-DASH manifest files
goav
Comprehensive Go bindings for FFmpeg
gortsplib
Pure Go RTSP server and client library
libvlc-go
Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player)
m3u8
Parser and generator library of M3U8 playlists for Apple HLS
mp4ff
Library and tools for working with MP4 files containing video, audio, subtitles, or metadata
v4l
Video capture library for Linux, written in Go
Web Frameworks
Atreugo
High performance and extensible micro web framework with zero memory allocations in hot paths
Beego
beego is an open-source, high-performance web framework for the Go programming language
- Confetti Framework
Confetti is a Go web application framework with an expressive, elegant syntax. Confetti combines the elegance of Laravel and the simplicity of Go
Don
A highly performant and simple to use API framework
Echo
High performance, minimalist Go web framework
Fastschema
A flexible Go web framework and Headless CMS
Fiber
An Express.js inspired web framework build on Fasthttp
Flamingo
Framework for pluggable web projects. Including a concept for modules and offering features for DI, Configareas, i18n, template engines, graphql, observability, security, events, routing & reverse routing etc
Flamingo Commerce
Providing e-commerce features using clean architecture like DDD and ports and adapters, that you can use to build flexible e-commerce applications
Fuego
The framework for busy Go developers! Web framework generating OpenAPI 3 spec from source code
Gin
Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity
Ginrpc
Gin parameter automatic binding tool,gin rpc tools
Goa
Goa provides a holistic approach for developing remote APIs and microservices in Go
GoFr
Gofr is an opinionated microservice development framework
GoFrame
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang
golamb
Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway
Gone
A lightweight dependency injection and web framework inspired by Spring
goravel
A Laravel-inspired web framework with ORM, authentication, queue, task scheduling, and more built-in features
Goyave
Feature-complete REST API framework aimed at clean code and fast development, with powerful built-in functionalities
Hertz
A high-performance and strong-extensibility Go HTTP framework that helps developers build microservices
hiboot
hiboot is a high performance web application framework with auto configuration and dependency injection support
Huma
Framework for modern REST/GraphQL APIs with built-in OpenAPI 3, generated documentation, and a CLI
iWF
iWF is an all-in-one platform for developing long-running business processes. It offers a convenient abstraction for utilizing databases, ElasticSearch, message queues, durable timers, and more, with a clean, simple, and user-friendly interface
Lit
Highly performant declarative web framework for Golang, aiming for simplicity and quality of life
Microservice
The framework for the creation of microservices, written in Golang
patron
Patron is a microservice framework following best cloud practices with a focus on productivity
- Pnutmux
Pnutmux is a powerful Go web framework that uses regex for matching and handling HTTP requests. It offers features such as CORS handling, structured logging, URL parameters extraction, middlewares, and concurrency limiting
Revel
High-productivity web framework for the Go language
rk-boot
A bootstrapper library for building enterprise go microservice with Gin and gRPC quickly and easily
rux
Simple and fast web framework for build golang HTTP applications
uAdmin
Fully featured web framework for Golang, inspired by Django
WebGo
A micro-framework to build web apps with handler chaining, middleware, and context injection. With standard library-compliant HTTP handlers (i.e., )
Yokai
Simple, modular, and observable Go framework for backend applications
Web Frameworks / Middlewares
client-timing
An HTTP client for Server-Timing header
CORS
Easily add CORS capabilities to your API
echo-middleware
Middleware for Echo framework with logging and metrics
formjson
Transparently handle JSON input as a standard form POST
go-fault
Fault injection middleware for Go
go-server-timing
Add/parse Server-Timing header
Limiter
Dead simple rate limit middleware for Go
ln-paywall
Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin)
mid
Miscellaneous HTTP middleware features: idiomatic error return from handlers; receive/respond with JSON data; request tracing; and more
rk-gin
Middleware for Gin framework with logging, metrics, auth, tracing etc
rk-grpc
Middleware for gRPC with logging, metrics, auth, tracing etc
Tollbooth
Rate limit HTTP request handler
XFF
Handle header and friends
alice
Painless middleware chaining for Go
catena
http.Handler wrapper catenation (same API as "chain")
chain
Handler wrapper chaining with scoped data (net/context-based "middleware")
gores
Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs
interpose
Minimalist net/http middleware for golang
mediary
add interceptors to to allow dumping/shaping/tracing/... of requests/responses
muxchain
Lightweight middleware for net/http
negroni
Idiomatic HTTP middleware for Golang
render
Go package for easily rendering JSON, XML, and HTML template responses
renderer
Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go
rye
Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context
stats
Go middleware that stores various information about your web application
Web Frameworks / Routers
alien
Lightweight and fast http router from outer space
bellt
A simple Go HTTP router
Bone
Lightning Fast HTTP Multiplexer
Bxog
Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters
chi
Small, fast and expressive HTTP router built on net/context
fasthttprouter
High performance router forked from . The first router fit for
FastRouter
a fast, flexible HTTP router written in Go
goblin
A golang http router based on trie tree
gocraft/web
Mux and middleware package in Go
Goji
Goji is a minimalistic and flexible HTTP request multiplexer with support for
GoLobby/Router
GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language
goroute
Simple yet powerful HTTP request multiplexer
GoRouter
GoRouter is a Server/API micro framework, HTTP request router, multiplexer, mux that provides request router with middleware supporting
gowww/router
Lightning fast HTTP router fully compatible with the net/http.Handler interface
httprouter
High performance router. Use this and the standard http handlers to form a very high performance web framework
httptreemux
High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter
lars
Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks
mux
Powerful URL router and dispatcher for golang
nchi
chi-like router built on httprouter with dependency injection based middleware wrappers
ngamux
Simple HTTP router for Go
ozzo-routing
An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs
pure
Is a lightweight HTTP router that sticks to the std "net/http" implementation
Siesta
Composable framework to write middleware and handlers
vestigo
Performant, stand-alone, HTTP compliant URL Router for go web applications
violetear
Go HTTP router
xmux
High performance muxer based on with support
xujiajun/gorouter
A simple and fast HTTP router for Go
WebAssembly
dom
DOM library
Extism Go SDK
Universal, cross-language WebAssembly framework for building plug-in systems and polyglot apps
go-canvas
Library to use HTML5 Canvas, with all drawing within go code
tinygo
Go compiler for small places. Microcontrollers, WebAssembly, and command-line tools. Based on LLVM
vert
Interop between Go and JS values
wasmbrowsertest
Run Go WASM tests in your browser
webapi
Bindings for DOM and HTML generated from WebIDL
Windows
Workflow Frameworks
Cadence-client
A framework for authoring workflows and activities running on top of the Cadence orchestration engine made by Uber
Dagu
No-code workflow executor. it executes DAGs defined in a simple YAML format
go-taskflow
A taskflow-like General-purpose Task-parallel Programming Framework with integrated visualizer and profiler
workflow
A tech stack agnostic Event Driven Workflow framework
XML
XML-Comp
Simple command line XML comparer that generates diffs of folders, files and tags
xml2map
XML to MAP converter written Golang
xmlwriter
Procedural XML generation API based on libxml2's xmlwriter module
xpath
XPath package for Go
xquery
XQuery lets you extract data from HTML/XML documents using XPath expression
zek
Generate a Go struct from XML
Zero Trust
Cosign
Container Signing, Verification and Storage in an OCI registry
in-toto
Go implementation of the in-toto (provides a framework to protect the integrity of the software supply chain) python reference implementation
OpenZiti
A full, open source zero trust overlay network. Including numerous SDKs for numerous languages such as allowing you to embed zero trust principles directly into your applications. The has numerous examples to draw inspiration from including a
Spiffe-Vault
Utilizes Spiffe JWT authentication with Hashicorp Vault for secretless authentication
Spire
SPIRE (the SPIFFE Runtime Environment) is a toolchain of APIs for establishing trust between software systems across a wide variety of hosting platforms
Code Analysis
apicompat
Checks recent changes to a Go project for backwards incompatible changes
asty
Converts golang AST to JSON and JSON to AST
- blanket
blanket is a tool that helps you catch functions which don't have direct unit tests in your Go packages
ChainJacking
Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack
Chronos
Detects race conditions statically
dupl
Tool for code clone detection
errcheck
Errcheck is a program for checking for unchecked errors in Go programs
fatcontext
Fatcontext detects nested contexts in loops or function literals
gcvis
Visualise Go program GC trace data in real time
go-checkstyle
checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments
go-cleanarch
go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects
go-critic
source code linter that brings checks that are currently not implemented in other linters
go-mod-outdated
An easy way to find outdated dependencies of your Go projects
goast-viewer
Web based Golang AST visualizer
- goimports
Tool to fix (add, remove) your Go imports automatically
golang-ifood-sdk
iFood API SDK
golangci-lint
– A fast Go linters runner. It runs linters in parallel, uses caching, supports config, has integrations with all major IDE and has dozens of linters included
golines
Formatter that automatically shortens long lines in Go code
GoPlantUML
Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them
goreturns
Adds zero-value return statements to match the func return types
gostatus
Command line tool, shows the status of repositories that contain Go packages
lint
Run linters as part of go test
php-parser
A Parser for PHP written in Go
revive
– ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for
staticcheck
staticcheck is on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#
testifylint
– A linter that checks usage of
tickgit
CLI and go package for surfacing code comment TODOs (in any language) and applying a to identify the author
todocheck
Static code analyser which links TODO comments in code with issues in your issue tracker
unconvert
Remove unnecessary type conversions from Go source
usestdlibvars
A linter that detect the possibility to use variables/constants from the Go standard library
vacuum
An ultra-super-fast, lightweight OpenAPI linter and quality checking tool
validate
Automatically validates struct fields with tags
wrapcheck
A linter to check that errors from external packages are wrapped
Editor Plugins
coc-go language server extension for Vim/Neovim
This plugin adds features to Vim/Neovim
Go Doc
A Visual Studio Code extension for showing definition in output and generating go doc
- Go plugin for JetBrains IDEs
Go plugin for JetBrains IDEs
go-language-server
A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol
go-mode
Go mode for GNU/Emacs
go-plus
Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting
gocode
Autocompletion daemon for the Go programming language
goimports-reviser
Formatting tool for imports
- goprofiling
This extension adds benchmark profiling support for the Go language to VS Code
GoSublime
Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features
gounit-vim
Vim plugin for generating Go tests based on the function's or method's signature
vim-compiler-go
Vim plugin to highlight syntax errors on save
vim-go
Go development plugin for Vim
vscode-go
Extension for Visual Studio Code (VS Code) which provides support for the Go language
Watch
Runs a command in an acme win on file changes
Go Generate Tools
envdoc
generate documentation for environment variables from Go source files
generic
flexible data type for Go
genny
Elegant generics for Go
gocontracts
brings design-by-contract to Go by synchronizing the code with the documentation
godal
Generate orm models corresponding to golang by specifying sql ddl file, which can be used by gorm
gonerics
Idiomatic Generics in Go
gotests
Generate Go tests from your source code
gounit
Generate Go tests using your own templates
hasgo
Generate Haskell inspired functions for your slices
options-gen
Functional options described by Dave Cheney's post "Functional options for friendly APIs"
- re2dfa
Transform regular expressions into finite state machines and output Go source code
sqlgen
Generate gorm, xorm, sqlx, bun, sql code from SQL file or DSN
- TOML-to-Go
Translates TOML into a Go type in the browser instantly
xgen
XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator
Go Tools
colorgo
Wrapper around command for colorized output
decouple
Find “overspecified” function parameters that could be generalized with interface types
depth
Visualize dependency trees of any package by analyzing imports
docs
Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard
go-callvis
Visualize call graph of your Go program using dot format
go-size-analyzer
Analyze and visualize the size of dependencies in compiled Golang binaries, providing insight into their impact on the final build
go-swagger
Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API
godbg
Implementation of Rusts macro for quick and easy debugging during development
gomodrun
Go tool that executes and caches binaries included in go.mod files
- gotemplate.io
Online tool to preview templates live
gotestdox
Show Go test results as readable sentences
gothanks
GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers
igo
An igo to go transpiler (new language features for Go language!)
modver
Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to rules
MoniGO
A performance monitoring library for Go applications. It provides real-time insights into application performance! 🚀
OctoLinker
Navigate through go files efficiently with the OctoLinker browser extension for GitHub
richgo
Enrich outputs with text decorations
roumon
Monitor current state of all active goroutines via a command line interface
rts
RTS: response to struct. Generates Go structs from server responses
textra
Extract Go struct field names, types and tags for filtering and exporting
typex
Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration
Software Packages / DevOps Tools
abbreviate
abbreviate is a tool turning long strings in to shorter ones with configurable separators, for example to embed branch names in to deployment stack IDs
alaz
Effortless, Low-Overhead, eBPF-based Kubernetes Monitoring
aptly
aptly is a Debian repository management tool
aurora
Cross-platform web-based Beanstalkd queue server console
awsenv
Small binary that loads Amazon (AWS) environment variables for a profile
Balerter
A self-hosted script-based alerting manager
Blast
A simple tool for API load testing and batch jobs
bombardier
Fast cross-platform HTTP benchmarking tool
bosun
Time Series Alerting Framework
cassowary
Modern cross-platform HTTP load-testing tool written in Go
Ddosify
High-performance load testing tool, written in Golang
decompose
tool to generate and process Docker containers connections graphs
DepCharge
Helps orchestrating the execution of commands across the many dependencies in larger projects
- Docker
Open platform for distributed applications for developers and sysadmins
docker-go-mingw
Docker image for building Go binaries for Windows with MinGW toolchain
Dockerfile-Generator
A go library and an executable that produces valid Dockerfiles using various input channels
dogo
Monitoring changes in the source file and automatically compile and run (restart)
drone-jenkins
Trigger downstream Jenkins jobs using a binary, docker or Drone CI
drone-scp
Copy files and artifacts via SSH using a binary, docker or Drone CI
Dropship
Tool for deploying code via cdn
easyssh-proxy
Golang package for easy remote execution through SSH and SCP downloading via
fac
Command-line user interface to fix git merge conflicts
Flannel
Flannel is a network fabric for containers, designed for Kubernetes
Fleet device management
Lightweight, programmable telemetry for servers and workstations
gaia
Build powerful pipelines in any programming language
ghorg
Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Gitea, and Bitbucket
Gitea
Fork of Gogs, entirely community driven
- gitea-github-migrator
Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance
go-furnace
Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean
go-rocket-update
A simple way to make self updating Go applications - Supports Github and Gitlab
go-selfupdate
Enable your Go applications to self update
gobrew
gobrew lets you easily switch between multiple versions of go
gobrew
Go version manager. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash
godbg
Web-based gdb front-end application
- Gogs
A Self Hosted Git Service in the Go Programming Language
gonative
Tool which creates a build of Go that can cross compile to all platforms while still using the Cgo-enabled versions of the stdlib packages
govvv
“go build” wrapper to easily add version information into Go binaries
gox
Dead simple, no frills Go cross compile tool
grapes
Lightweight tool designed to distribute commands over ssh with ease
GVM
GVM provides an interface to manage Go versions
Hey
Hey is a tiny program that sends some load to a web application
httpref
httpref is a handy CLI reference for HTTP methods, status codes, headers, and TCP and UDP ports
jcli
Jenkins CLI allows you manage your Jenkins as an easy way
k3d
Little helper to run CNCF's k3s in Docker
k3s
Lightweight Kubernetes
k6
A modern load testing tool, using Go and JavaScript
kala
Simplistic, modern, and performant job scheduler
kcli
Command line tool for inspecting kafka topics/partitions/messages
kind
Kubernetes IN Docker - local clusters for testing Kubernetes
ko
Command line tool for building and deploying Go applications on Kubernetes
kool
Command line tool for managing Docker environments as an easy way
kubeblocks
KubeBlocks is an open-source control plane that runs and manages databases, message queues and other data infrastructure on K8s
kubernetes
Container Cluster Manager from Google
kubeshark
API traffic analyzer for Kubernetes, inspired by Wireshark, purposely built for Kubernetes
KubeVela
Cloud native application delivery
KubeVPN
KubeVPN offers a Cloud-Native Dev Environment that seamlessly connects to your Kubernetes cluster network
KusionStack
A unified programmable configuration techstack to deliver modern app in 'platform as code' and 'infra as code' approach
kwatch
Monitor & detect crashes in your Kubernetes(K8s) cluster instantly
lwc
A live-updating version of the UNIX wc command
manssh
manssh is a command line tool for managing your ssh alias config easily
Mantil
Go specific framework for building serverless applications on AWS that enables you to focus on pure Go code while Mantil takes care of the infrastructure
minikube
Run Kubernetes locally
Moby
Collaborative project for the container ecosystem to assemble container-based systems
Mora
REST server for accessing MongoDB documents and meta data
ostent
collects and displays system metrics and optionally relays to Graphite and/or InfluxDB
Packer
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration
Pewpew
Flexible HTTP command line stress tester
PipeCD
A GitOps-style continuous delivery platform that provides consistent deployment and operations experience for any applications
podinfo
Podinfo is a tiny web application made with Go that showcases best practices of running microservices in Kubernetes. Podinfo is used by CNCF projects like Flux and Flagger for end-to-end testing and workshops
Pomerium
Pomerium is an identity-aware access proxy
Rodent
Rodent helps you manage Go versions, projects and track dependencies
s3-proxy
S3 Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth)
s3gof3r
Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3
s5cmd
Blazing fast S3 and local filesystem execution tool
Scaleway-cli
Manage BareMetal Servers from Command Line (as easily as with Docker)
script
Making it easy to write shell-like scripts in Go for DevOps and system administration tasks
sg
Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response
skm
SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily!
StatusOK
Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected
tau
Easily build Cloud Computing Platforms with features like Serverless WebAssembly Functions, Frontend Hosting, CI/CD, Object Storage, K/V Database, and Pub-Sub Messaging
terraform-provider-openapi
Terraform provider plugin that dynamically configures itself at runtime based on an OpenAPI document (formerly known as swagger file) containing the definitions of the APIs exposed
tf-profile
Profiler for Terraform runs. Generate global stats, resource-level stats or visualizations
tlm
Local cli copilot, powered by CodeLLaMa
traefik
Reverse proxy and load balancer with support for multiple backends
trubka
A CLI tool to manage and troubleshoot Apache Kafka clusters with the ability of generically publishing/consuming protocol buffer and plain text events to/from Kafka
uTask
Automation engine that models and executes business processes declared in yaml
Vegeta
HTTP load testing tool and library. It's over 9000!
wait-for
Wait for something to happen (from the command line) before continuing. Easy orchestration of Docker services and other things
webhook
Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server
- Wide
Web-based IDE for Teams using Golang
winrm-cli
Cli tool to remotely execute commands on Windows machines
Software Packages / Other Software
- Better Go Playground
Go playground with syntax highlight, code completion and other features
blocky
Fast and lightweight DNS proxy as ad-blocker for local network with many features
borg
Terminal based search engine for bash snippets
boxed
Dropbox based blog engine
Cherry
Tiny webchat server in Go
Circuit
Circuit is a programmable platform-as-a-service (PaaS) and/or Infrastructure-as-a-Service (IaaS), for management, discovery, synchronization and orchestration of services and hosts comprising cloud applications
Comcast
Simulate bad network connections
confd
Manage local application configuration files using templates and data from etcd or consul
crawley
Web scraper/crawler for cli
croc
Easily and securely send files or folders from one computer to another
Documize
Modern wiki software that integrates data from SaaS tools
dp
Through SDK for data exchange with blockchain, developers can get easy access to DAPP development
drive
Google Drive client for the commandline
Duplicacy
A cross-platform network and cloud backup tool based on the idea of lock-free deduplication
fjira
A fuzzy-search based terminal UI application for Attlasian Jira
Gebug
A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly
gfile
Securely transfer files between two computers, without any third party, over WebRTC
Go Package Store
App that displays updates for the Go packages in your GOPATH
go-peerflix
Video streaming torrent client
- goblin
Golang binaries in a curl, built by goblins
GoBoy
Nintendo Game Boy Color emulator written in Go
gocc
Gocc is a compiler kit for Go written in Go
GoDocTooltip
Chrome extension for Go Doc sites, which shows function description as tooltip at function list
Gokapi
Lightweight server to share files, which expire after a set amount of downloads or days. Similar to Firefox Send, but without public upload
- GoLand
Full featured cross-platform Go IDE
GoNB
Interactive Go programming with Jupyter Notebooks (also works in VSCode, Binder and Google's Colab)
Gor
Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time
Guora
A self-hosted Quora like web application written in Go
hoofli
Generate PlantUML diagrams from Chrome or Firefox network inspections
hotswap
A complete solution to reload your go code without restarting your server, interrupting or blocking any ongoing procedure
- hugo
Fast and Modern Static Website Engine
ide
Browser accessible IDE. Designed for Go with Go
ipe
Open source Pusher server implementation compatible with Pusher client libraries written in GO
joincap
Command-line utility for merging multiple pcap files together
JuiceFS
Distributed POSIX file system built on top of Redis and AWS S3
- Juju
Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more
Leaps
Pair programming service using Operational Transforms
lgo
Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility
- limetext
Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text
LiteIDE
LiteIDE is a simple, open source, cross-platform Go IDE
mockingjay
Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests
myLG
Command Line Network Diagnostic tool written in Go
naclpipe
Simple NaCL EC25519 based crypto pipe tool written in Go
Neo-cowsay
🐮 cowsay is reborn. for a New Era
nes
Nintendo Entertainment System (NES) emulator written in Go
Orbit
A simple tool for running commands and generating files from templates
peg
Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator
Plik
Plik is a temporary file upload system (Wetransfer like) in Go
portal
Portal is a quick and easy command-line file transfer utility from any computer to another
protoncheck
ProtonMail module for waybar/polybar/yabar/i3blocks
restic
De-duplicating backup program
sake
sake is a command runner for local and remote hosts
scc
Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates
Seaweed File System
Fast, Simple and Scalable Distributed File System with O(1) disk seek
shell2http
Executing shell commands via http server (for prototyping or remote control)
Snitch
Simple way to notify your team and many tools when someone has deployed any application via Tsuru
sonic
Sonic is a Go Blogging Platform. Simple and Powerful
Stack Up
Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers
stew
An independent package manager for compiled binaries
- syncthing
Open, decentralized file synchronization tool and protocol
tcpdog
eBPF based TCP observability
tcpprobe
TCP tool for network performance and path monitoring, including socket statistics
term-quiz
Quizzes for your terminal
toxiproxy
Proxy to simulate network and system conditions for automated tests
- tsuru
Extensible and open source Platform as a Service software
vaku
CLI & API for folder-based functions in Vault like copy, move, and search
vFlow
High-performance, scalable and reliable IPFIX, sFlow and Netflow collector
- Wave Terminal
Wave is an open-source, AI-native terminal built for seamless developer workflows with inline rendering, a modern UI, and persistent sessions
wellington
Sass project management tool, extends the language with sprite functions (like Compass)
woke
Detect non-inclusive language in your source code
yai
AI powered terminal assistant
- zs
an extremely minimal static site generator
Resources / Benchmarks
autobench
Framework to compare the performance between different Go versions
go-benchmark-app
Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results
go-benchmarks
Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches
go-http-routing-benchmark
Go HTTP request router benchmark and comparison
go-json-benchmark
Go JSON benchmark
go-ml-benchmarks
benchmarks for machine learning inference in Go
go-web-framework-benchmark
Go web framework benchmark
go_serialization_benchmarks
Benchmarks of Go serialization methods
gocostmodel
Benchmarks of common basic operations for the Go language
golang-benchmarks
a collection of golang benchmarks
golang-sql-benchmark
Collection of benchmarks for popular Go database/SQL utilities
gospeed
Go micro-benchmarks for calculating the speed of language constructs
kvbench
Key/Value database benchmark
skynet
Skynet 1M threads microbenchmark
speedtest-resize
Compare various Image resize algorithms for the Go language
Resources / Conferences
- GoCon
Tokyo, Japan
- GoDays
Berlin, Germany
- GoLab
Florence, Italy
- GopherChina
Shanghai, China
- GopherCon
Denver, USA
- GopherCon Australia
Sydney, Australia
- GopherCon Brazil
Florianópolis, Brazil
- GopherCon Europe
Berlin, Germany
- GopherCon India
Pune, India
- GopherCon Israel
Tel Aviv, Israel
- GopherCon Russia
Moscow, Russia
- GopherCon Singapore
Mapletree Business City, Singapore
- GopherCon UK
London, UK
- GopherCon Vietnam
Ho Chi Minh City, Vietnam
- GoWest Conference
Lehi, USA
Resources / E-Books / E-books for purchase
- Black Hat Go
Go programming for hackers and pentesters
- Continuous Delivery in Go
This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product
- Creative DIY Microcontroller Project With TinyGo and WebAssembly
An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly
- Effective Go: Elegant, efficient, and testable code
Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code
- For the Love of Go
An introductory book for Go beginners
- Go in Practice, Second Edition
Your practical guide on the ins-and-outs of Go development, covering the standard library and the most important tools from Go’s powerful ecosystem
- Know Go: Generics
A guide to understanding and using generics in Go
- Lets-Go
A step-by-step guide to creating fast, secure and maintanable web applications with Go
- Lets-Go-Further
Advanced patterns for building APIs and web applications in Go
- The Power of Go: Tests
A guide to testing in Go
- The Power of Go: Tools
A guide to writing command-line tools in Go
- Writing An Interpreter In Go
Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls
Resources / E-Books / Free e-books
Build a blockchain from scratch in Go with gRPC
The foundational and practical guide for effectively learning and progressively building a blockchain from scratch in Go with gRPC
- Go 101
A book focusing on Go syntax/semantics and all kinds of details
Go AST Book (Chinese)
A book focusing on Go packages
- Go Faster
This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster
Go Succinctly
in Persian
- Go with the domain
A book showing how to apply DDD, Clean Architecture, and CQRS by practical refactoring
GoBooks
A curated list of Go books
- How To Code in Go eBook
A 600 page introduction to Go aimed at first time developers
Resources / Gophers
Free Gophers Pack
Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster
Go-gopher-Vector
Go gopher Vector Data [.ai, .svg]
gopher-logos
adorable gopher logos
gopherize.me
Gopherize yourself
gophers
Gopher artworks by Ashley McNamara
gophers
Free gophers
gophers
random gopher graphics
gophers
Gopher amigurumi toy pattern
gophers
Gophers by Aurélie Vache
Resources / Meetups
Resources / Style Guides
Resources / Social Media / Twitter
Resources / Social Media / Reddit
Resources / Websites
- Awesome Go @LibHunt
Your go-to Go Toolbox
Awesome Golang Workshops
A curated list of awesome golang workshops
Awesome Remote Job
Curated list of awesome remote jobs. A lot of them are looking for Go hackers
awesome-awesomeness
List of other amazingly awesome lists
awesome-go-extra
Parse awesome-go README file and generate a new README file with repo info
- Code with Mukesh
Software Engineer and Blogs @ codewithmukesh.com
- Coding Mystery
Solve exciting escape-room-inspired programming challenges using Go
- CodinGame
Learn Go by solving interactive tasks using small games as practical examples
- Go Blog
The official Go blog
- Go Code Club
A group of Gophers read and discuss a different Go project every week
- Go Community on Hashnode
Community of Gophers on Hashnode
- Go Forum
Forum to discuss Go
Go Projects
List of projects on the Go community wiki
- Go Proverbs
Go Proverbs by Rob Pike
- Go Report Card
A report card for your Go package
- go.dev
A hub for Go developers
gocryforhelp
Collection of Go projects that needs help. Good place to start your open-source way in Go
- Golang Developer Jobs
Developer Jobs exclusively for Golang related Roles
- Golang News
Links and news about Go programming
- Golang Nugget
A weekly roundup of the best Go content, delivered to your inbox every Monday
- Golang Resources
A curation of the best articles, exercises, talks and videos to learn Go
- Golang Weekly
Each monday projects, tutorials and articles about Go
- golang-nuts
Go mailing list
- Google Plus Community
The Google+ community for #golang enthusiasts
- Gopher Community Chat
Join Our New Slack Community For Gophers ( )
- Gophercises
Free coding exercises for budding gophers
- json2go
Advanced JSON to Go struct conversion - online tool
- justforfunc
Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy
- Learn Go Programming
Learn Go concepts with illustrations
- pkg.go.dev
Documentation for open source Go packages
- r/Golang
News about Go
- studygolang
The community of studygolang in China
- Trending Go repositories on GitHub today
Good place to find new Go libraries
Resources / Websites / Tutorials
- 50 Shades of Go
Traps, Gotchas, and Common Mistakes for New Golang Devs
- A Comprehensive Guide to Structured Logging in Go
Delve deep into the world of structured logging in Go with a specific focus on recently accepted slog proposal which aims to bring high performance structured logging with levels to the standard library
- A Guide to Golang E-Commerce
Building a Golang site for e-commerce (demo included)
- A Tour of Go
Interactive tour of Go
- Build a Database in 1000 lines of code
Build a NoSQL Database From Zero in 1000 Lines of Code
Build web application with Golang
Golang ebook intro how to build a web app with golang
- Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL
We’ll write an API with the help of the powerful Gorilla Mux
- Building Go Web Applications and Microservices Using Gin
Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline
- Caching Slow Database Queries
How to cache slow database queries
- Canceling MySQL
How to cancel MySQL queries
- CodeCrafters Golang Track
Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more
Design Patterns in Go
Collection of programming design patterns implemented in Go
Ethereum Development with Go
A little e-book on Ethereum Development with Go
- Games With Go
A video series teaching programming and game development
- Go By Example
Hands-on introduction to Go using annotated example programs
Go Cheat Sheet
Go's reference card
- Go database/sql tutorial
Introduction to database/sql
Go in 7 days
Learn everything about Go in 7 days (from a Nodejs developer)
- Go Language Tutorial
Learn Go language Tutorial
- Go Tutorial
Learn Go programming
go-clean-template
Clean Architecture template for Golang services
go-patterns
Curated list of Go design patterns, recipes and idioms
goapp
An opinionated guideline to structure & develop a Go web application/service
Golang for Node.js Developers
Examples of Golang compared to Node.js for learning
- Golang Tutorial Guide
A List of Free Courses to Learn the Go Programming Language
golang-examples
Many examples to learn Golang
- Golangbot
Tutorials to get started with programming in Go
- GopherCoding
Collection of code snippets and tutorials to help tackle every day issues
- GopherSnippets
Code snippets with tests and testable examples for the Go programming language
- Gosamples
Collection of code snippets that let you solve everyday code problems
- GraphQL with Go
Learn how to create a Go GraphQL server and client with code generation. Also includes creating REST endpoints
- Hackr.io
Learn Go from the best online golang tutorials submitted & voted by the golang programming community
Hex Monscape
Getting started guidelines in writing maintainable code using Hexagonal Architecture
- How to Benchmark: dbq vs sqlx vs GORM
Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM
- How To Deploy a Go Web Application with Docker
Learn how to use Docker for Go development and how to build production Docker images
- How to Use Godog for Behavior-driven Development in Go
Get started with Godog — a Behavior-driven development framework for building and testing Go applications
Learn Go with 1000+ Exercises
Learn Go with thousands of examples, exercises, and quizzes
Learn Go with TDD
Learn Go with test-driven development
- Learning Go by examples
Series of articles in order to learn Golang language by concrete applications as example
- Microservices with Go
Dive deep into building microservices using Go, including gRPC
- package main
YouTube channel about Programming in Go
- Programming with Google Go
Coursera Specialization to learn about Go from scratch
- Scaling Go Applications
Everything about building, deploying and scaling Go applications in production
- Understanding Go in a visual way
Learn Go visually
- W3basic Go Tutorials
W3Basic provides an in-depth tutorial and well-organized content to learn Golang programming
Working with Go
Intro to go for experienced programmers
- Your basic Go
Huge collection of tutorials and how to's
Resources / Websites / Guided Learning
- The Go Developer Roadmap
A visual roadmap that new Go developers can follow through to help them learn Go
- The Go Learning Path
A guided learning path containing a mix of free and premium resources
- The Go Skill Tree
A structured learning path that combines both free and premium resources
Nothing in this list matches your filter.
Featured in 16 awesome lists
Each link jumps to the spot where the list mentions awesome-go.
sindresorhus/awesome
bayandin/awesome-awesomeness
jnv/lists
emijrp/awesome-awesome
networktocode/awesome-network-automation
stevinz/awesome-game-engine-dev
mark-rushakoff/awesome-influxdb
googlecloudplatform/awesome-google-cloud
fleveque/awesome-awesomes
erichs/awesome-awesome
bradoyler/awesome-all
gophers-latam/awesome-latam
flyhigher139/awesome-collection
szabgab/awesome-lists
coopermaa/awesome-awesome
0ex/more-awesome
More related projects
superseriousbusiness/gotosocial3.9K
charmbracelet/soft-serve5.5K
xd-deng/handytools-go-webassembly67
cs-si/safescale42
gtramontina/ooze255
campoy/go-web-workshop536
kubernetes/kompose9.7K
insolar/insolar191
kaaproject/kaa1.4K
nathanborror/logger63
perlin-network/life1.7K
securego/gosec7.9K
create-go-app/net_http-go-template50
campoy/go-tooling-workshop2.8K