← Back to Awesome

Sections

Go

GitHub repository ↗ synced 2026/8/9

Awesome Go

Build Status
Awesome
Slack Widget
Netlify Status
Track Awesome List
Last Commit

We use the Golang Bridge community Slack for instant communication, follow the form here to join.

Sponsorships:

Special thanks to

Awesome Go has no monthly fee, but we have employees who work hard to keep it running. With money raised, we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click here.

A curated list of awesome Go frameworks, libraries, and software. Inspired by awesome-python.

Contributing:

Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!

If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!

Actor Model

asyncmachine-go/pkg/machine

Graph control flow library (AOP, actor, state-machine).

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

Distributed actors for Go, C#, and Java/Kotlin.

Libraries for building actor-based programs.

Artificial Intelligence

AegisFlow

AI gateway for routing, securing, and monitoring LLM traffic across 10+ providers. OpenAI-compatible API, WASM policy plugins, canary rollouts, real-time dashboard.

Aetheris

AI Agent execution runtime with event sourcing, checkpoint recovery, and At-Most-Once execution guarantee. Written in Go.

agent-sdk-go

Go SDK for building durable AI agents on Temporal with support for tools, MCP, human approvals, and sub-agent delegation.

ai

A Go toolkit for building AI agents and applications across multiple providers with unified LLM, embeddings, tool calling, and MCP integration.

chromem-go

Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence.

dakera-go

Official Go client SDK for the Dakera self-hosted agent memory server, providing typed interfaces for memory store/recall, session management, namespace operations, and decay configuration.

fun

The simplest but powerful way to use large language models (LLMs) in Go.

goai

Go SDK for building AI applications. One SDK, 20+ providers. Inspired by Vercel AI SDK.

GoModel

AI gateway exposing a unified OpenAI-compatible API across OpenAI, Anthropic, Gemini, Groq, xAI, Ollama and other providers, with routing, usage tracking, rate limits, and guardrails.

hotplex

AI Agent runtime engine with long-lived sessions for Claude Code, OpenCode, pi-mono and other CLI AI tools. Provides full-duplex streaming, multi-platform integrations, and secure sandbox.

jargo

Framework for building real-time voice AI agents over WebRTC, wiring speech-to-text, LLMs, and text-to-speech into a streaming pipeline.

langchaingo

LangChainGo is a framework for developing applications powered by language models.

langgraphgo

A Go library for building stateful, multi-actor applications with LLMs, built on the concept of LangGraph,with a lot of builtin Agent architectures.

llm-box

Terminal-based AI workflow engine with YAML-driven pipelines, 20+ LLM providers (DeepSeek, Qwen, GLM, Mistral, etc.), and a TUI for workflow management.

LocalAI

Open Source OpenAI alternative, self-host AI models.

localaik

LocalStack-style local emulation of OpenAI and Gemini APIs; single Docker container, llama.cpp + Gemma 3 backend.

mcp-go

Go implementation of the Model Context Protocol for building MCP servers and clients in Go.

Ollama

Run large language models locally.

OllamaFarm

Manage, load-balance, and failover packs of Ollamas.

otellix

OpenTelemetry-native LLM observability and budget guardrails for cost-constrained production environments.

routex

YAML-driven multi-agent AI runtime for Go with Erlang-style supervision, MCP tool server support, and a CLI.

semantic-search

Meaning-based search over PDF, Markdown, DOCX, source code, and other file types, using generative AI embedding models to vectorize files into a vector database.

skillreaper

CLI that scans AI agent session transcripts to identify and safely quarantine unused skills, MCP servers, and agents across Claude Code, Codex CLI, Hermes, OpenCode, Cursor, and OpenClaw.

Smeldr

AI-native content backend with typed lifecycle management, native MCP tools for every content type, and zero runtime dependencies.

trpc-agent-go

Framework for building LLM-based multi-agent systems.

web-researcher-mcp

MCP server providing AI assistants with web search, content extraction, and multi-source research capabilities. Single binary, 5 search providers with circuit-breaker failover, 4-tier scraping pipeline.

zenflow

Multi-agent orchestration & workflow engine. Declarative YAML workflows, LLM coordinator with hub-and-spoke mailboxes, race-safe delivery. One YAML file, one Go binary. Runs on any goai-supported provider.

Libraries for building programs that leverage AI.

Audio and Music

beep

A simple library for playback and audio manipulation.

flac

Native Go FLAC encoder/decoder with support for FLAC streams.

gaad

Native Go AAC bitstream parser.

go-mpris

Client for mpris dbus interfaces.

go-resample

Pure-Go (no cgo) audio sample-rate converter with sinc, linear, and zero-order-hold converters.

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.

music-theory

Music theory models in Go.

Oto

A low-level library to play sound on multiple platforms.

PortAudio

Go bindings for the PortAudio audio I/O library.

Libraries for manipulating audio and music.

-voxrai-ai - AI voice agents with a JSON configuration, STT → LLM → TTS pipelines over WebSocket and WebRTC

Authentication and Authorization

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.

authgate

A lightweight OAuth 2.0 Authorization Server supporting Device Authorization Grant ([RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628)), Authorization Code Flow with PKCE ([RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749) + [RFC 7636](https://datatracker.ietf.org/doc/html/rfc7636)), and Client Credentials Grant for machine-to-machine authentication.

branca

branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+.

casbin

Authorization library that supports access control models like ACL, RBAC, and ABAC.

cookiestxt

provides a parser of cookies.txt file format.

go-githubauth

Utilities for GitHub authentication: generate and use GitHub application and installation tokens.

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-iam

Developer-first Identity and Access Management system with a simple UI.

go-jose

Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.

go-jwt

A JWT (JSON Web Token) library for Go.

go-jwt

JWT authentication package providing access tokens and refresh tokens with fingerprinting, Redis storage, and automatic refresh capabilities.

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 [CNCF](https://www.cncf.io/).

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

permissions

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.

securecookie

Efficient secure cookie encoding/decoding.

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.

spicedb

A Zanzibar-inspired database that enables fine-grained authorization.

x509proxy

Library to handle X509 proxy certificates.

Libraries for implementing authentication and authorization.

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

An IPFS implementation 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.

nview

Local monitoring tool for a Cardano Node. It's a TUI (terminal user interface) designed to fit most screens.

pactus

A full-node implementation of the Pactus blockchain in Go.

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.

tronlib

A comprehensive, production-ready Go SDK for interacting with the TRON blockchain with TRC20 token support.

Tools for building blockchains.

Bot Building

arikawa

A library and framework for the Discord API.

bot

Zero-dependencies Telegram Bot library with additional UI components.

echotron

An elegant and concurrent library for Telegram Bots 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-twitch-irc

Library to write bots for twitch.tv chat

micha

Go Library for Telegram bot api.

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.

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.

TG

Telegram Bot Framework for Go.

wayback

A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.

ymsdk

Go SDK for Yandex Messenger Bot API with type-safe models, automatic retry, and rate-limit handling.

Libraries for building and working with bots.

  • Wisp - Event-driven trading framework for Go. Spot, perpetual futures, prediction markets. Multi-exchange (Bybit, Hyperliquid, Polymarket).

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

[Gradle](https://docs.gradle.org/)/[Maven](https://maven.apache.org/) 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.

rex

Zero-config universal project runner. Detects your stack (Go, Node, Python, Rust, PHP, Zig, Elixir) and runs the right command.

Task

simple "Make" alternative.

taskctl

Concurrent task runner.

xc

Task runner with README.md defined tasks, executable markdown.

Libraries and tools help with build automation.

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

Render highly customizable boxes in the terminal.

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.

chroma16

Generate a harmonious 16-color terminal palette from a single seed color or string.

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.

fx

Terminal JSON viewer & processor.

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 [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts.

go-prompt

Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit).

go-tui

A declarative terminal UI framework with templ-like templates, flexbox layout, and a language server for editor support.

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.

goscaf

goscaf generates opinionated, production-quality Go project boilerplate via an interactive CLI. Stop copy-pasting skeleton code between projects.

lazyenv

TUI for browsing, comparing, and editing .env files.

lipgloss

Declaratively define styles for color, format and layout in the terminal.

loom

Signal-based reactive components framework for building TUIs.

marker

Easiest way to match and mark strings for colorful terminal outputs.

mpb

Multi progress bar for terminal applications.

phoenix

High-performance TUI framework with Elm-inspired architecture, perfect Unicode rendering, and zero-allocation event system.

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.

termbox-go

Termbox is a library for creating cross-platform text-based interfaces.

termdash

Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui).

termenv

Advanced ANSI style & color support for your terminal applications.

termui

Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib).

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.

vhs

Your CLI home video recorder - generate terminal GIFs from code for documentation and tutorials.

yacspin

Yet Another CLi Spinner package, for working with terminal spinners.

Libraries for building Console Applications and Console User Interfaces.

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.

boa

Declarative flags, env vars, validation, and config files from struct tags. Built on cobra.

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 `flag` 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.

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.

flaggy

A robust and idiomatic flags package with excellent subcommand support.

flagvar

A collection of flag argument types for Go's standard `flag` package.

flash-flags

Ultra-fast, zero-dependency, POSIX-compliant flag parsing library that can be used as drop-in stdlib replacement with security hardening.

getopt

An accurate Go `getopt`, validated against the GNU libc implementation.

go-arg

Struct-based argument parsing in Go.

go-flags

go command line option parser.

go-getoptions

Go option parser inspired by the flexibility of Perl’s GetOpt::Long.

go-readline-ny

A customizable line-editing library with Emacs keybindings, Unicode support, completion, and syntax highlighting. Used in NYAGOS shell.

gocmd

Go library for building command line applications.

goopt

A declarative, struct-tag based CLI framework for Go, with a broad feature set such as hierarchical commands/flags, i18n, shell completion, and validation.

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 `kong`; see below).

liner

Go readline-like library for command-line interfaces.

mcli

A minimal but very powerful cli library for Go.

memsh

Virtual bash shell in Go: executes shell commands against an in-memory filesystem (afero), with WASM plugin support and an embeddable HTTP server.

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.

neuron-cli

A local-first, Obsidian-compatible terminal knowledge manager.

OpenCLI

OpenAPI-style specification for CLIs; define your interface in a language-agnostic document to generate documentation and framework boilerplate code.

ops

Unikernel Builder/Orchestrator.

orpheus

CLI framework with security hardening, plugin storage system, and production observability features.

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.

sflags

Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries.

structcli

Eliminate Cobra boilerplate: build powerful, feature-rich CLIs declaratively from Go structs.

strumt

Library to create prompt chain.

subcmd

Another approach to parsing and running subcommands. Works alongside the standard `flag` package.

teris-io/cli

Simple and complete API for building command line interfaces in Go.

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.

wmenu

Easy to use menu structure for cli applications that prompt users to make choices.

Libraries for building standard or basic Command Line applications.

  • console Closed-loop application library for Cobra commands, with oh-my-posh prompts, and more.

Configuration

aconfig

Simple, useful and opinionated config loader.

argus

File watching and configuration management with MPSC ring buffer, adaptive batching strategies, and universal format parsing (JSON, YAML, TOML, INI, HCL, Properties).

azureappconfiguration

The configuration provider for consuming data in Azure App Configuration from Go applications.

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.

config

Struct-based configuration loader with a dedicated config file parser, supporting env vars, flags, defaults, and validation.

configuration

Library for initializing configuration structs from env variables, files, flags and 'default' tag.

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.

enflag

Container-oriented, zero-dependency configuration library that unifies Env variable and Flag parsing. Uses generics for type safety, without reflection or struct tags.

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.

envyaml

Yaml with environment variables reader. it helps to have secrets as environment variable but load them configs as structured Yaml.

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-config

Simple and convenient library for working with app configurations.

go-external-config

Spring-inspired configuration management library for Go.

go-external-config/aws

AWS property source support for go-external-config.

go-external-config/consul

Consul property source support for go-external-config.

go-external-config/vault

Vault property source support for go-external-config.

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.

goconfig

Populate Go structs from flags, environment variables, config.json and defaults with deterministic precedence. No extra dependencies.

godotenv

Go port of Ruby's dotenv library (Loads environment variables from `.env`).

goenv

Reads the ENV environment variable and reports whether the process is running in production or development.

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.

gonfiguration

Loads configuration from environment variables into structs via reflection, with struct-tag defaults and required fields.

gookit/config

application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.

harvester

Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.

hedzr/store

Extensible, high-performance configuration management library, optimized for hierarchical data.

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.

ini

Go package to read and write INI files.

ini

INI Parser & Write Library, Unmarshal to Struct, Marshal to Json, Write File, watch file.

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 `kingpin`).

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.

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 [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories).

yamagiconf

The "safe subset" of YAML for Go configs.

zerocfg

Zero-effort, concise configuration management that avoids boilerplate and repetitive code, supports multiple sources with priority overrides.

Libraries for configuration parsing.

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

A 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 [alternatives](https://github.com/lycheeverse/lychee#features).

overalls

Multi-Package go project coverprofile for tools like goveralls.

PikoCI

Self-hosted CI/CD inspired by Concourse. Single binary, any database, any queue. HCL pipelines, pluggable resource types and runners.

roveralls

Recursive coverage testing tool.

woodpecker

Woodpecker is a community fork of the Drone CI system.

Tools for help with continuous integration.

CSS Preprocessors

go-css

A very simple CSS parser, written in Go.

go-libsass

Go wrapper to the 100% Sass compatible libsass project.

Libraries for preprocessing CSS files.

Data Integration Frameworks

Benthos

A message streaming bridge between a range of protocols.

CloudQuery

A high-performance ELT data integration framework with pluggable architecture.

confluence2md

Confluence to Markdown crawler and converter.

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.

Frameworks for performing ELT / ETL

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.

Bit Sets

bitmap

Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go.

bitset

Go package implementing bitsets.

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.

ribbonGo

First pure Go implementation of Ribbon filters (practically smaller than Bloom and Xor) for space-efficient approximate set membership queries.

ring

Go implementation of a high performance, thread safe bloom filter.

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.

Iterators

gloop

Convenient looping using Go's range-over-func feature.

goterator

Iterator implementation to provide map and reduce functionalities.

iter

Go implementation of C++ STL iterators and algorithms.

Maps

cmap

a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards.

concurrent-swiss-map

A high-performance, thread-safe generic concurrent hash map implementation with Swiss Map.

dict

Python-like dictionaries (dict) for Go.

genericsyncmap

Type-safe generic wrapper for `sync.Map` with full method parity and zero dependencies.

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.

hmap

HMap is a concurrent and secure, generic support Map implementation designed to provide an easy-to-use API.

See also Database for more complex key-value stores, and Trees for
additional ordered map implementations.

Miscellaneous Data Structures and Algorithms

combo

Combinatorial operations including permutations, combinations, and combinations-with-replacement.

concurrent-writer

Highly concurrent drop-in replacement for `bufio.Writer`.

count-min-log

Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).

FSM

FSM for Go.

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.

hyperloglog

HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.

quadtree

Generic, zero-alloc, 100%-test covered quadtree.

slices

Pure, generic functions for slices.

Nullable Types

nan

Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers.

null

Nullable Go types that can be marshalled/unmarshalled to/from JSON.

typ

Null Types, Safe primitive type conversion and fetching value from complex structures.

Queues

deheap

Doubly-ended heap (min-max heap) with O(log n) access to both minimum and maximum elements.

deque

A highly optimized double-ended queue.

deque

Fast ring-buffer deque (double-ended queue).

dqueue

Simple, in memory, zero dependency and battle tested, thread-safe deferred queue.

goconcurrentqueue

Concurrent FIFO queue.

hatchet

Distributed, Fault-tolerant task queue.

list

A generic, thread-safe doubly linked list with full iterator support and an intrusive singly linked list for embedded use; a feature-rich replacement for container/list.

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.

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.

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.

radixtree

Adaptive radix tree (prefix-tree or compact-trie).

trie

Trie implementation in Go.

Trees

graphlib

Topological sort lib,Sorting and pruning of DAG graphs.

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.

treemap

Generic key-sorted map using a red-black tree under the hood.

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.

pipelines

Generic pipeline functions for concurrent processing.

Database

Caches

bcache

Eventually consistent distributed in-memory cache Go library.

BigCache

Efficient key/value cache for gigabytes of data.

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-gcache

The generic version of `GCache`, cache support for expirable Cache, LFU, LRU and ARC.

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.

jetcache-go

Unified Go cache library supporting multi-level caching.

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.

ristretto

A high performance memory-bound Go cache.

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.

Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases.

  • go-freelru A GC-less, fast and generic LRU hashmap library with optional locking, sharding, eviction and expiration.

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.

DiceDB

An open-source, fast, reactive, in-memory database optimized for modern hardware. Higher throughput and lower median latencies, making it ideal for modern workloads.

diskv

Home-grown disk-backed key-value store.

dolt

Dolt – It's Git for Data.

eliasdb

Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language.

gedb

MongoDB-like embedded database, written in pure-go. Supports indexing and complex queries.

godis

A Golang implemented high-performance Redis server and cluster.

goleveldb

Implementation of the [LevelDB](https://github.com/google/leveldb) 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.

lynxdb

Lightweight columnar log analytics database with a pipe-style query language inspired by SPL.

MemHop

Embedded cognitive memory database for AI agents. Six-layer architecture (L0-L5), Dream consolidation pipeline, three-channel RRF retrieval (BM25 + f16 vector + entity), single .meh file, pure Go, zero infrastructure.

Milvus

Milvus is a vector database for embedding management, analytics and search.

minisql

Embedded single file SQL database.

moss

Moss is a simple LSM key-value storage engine written in 100% Go.

nanotdb

A lightweight, zero-dependency, append-only Time-Series Database and Dashboard optimized for low-power hardware.

NoKV

Native metadata service for distributed filesystems, object storage, and AI dataset workloads.

NornicDB

High performance graph + vector database (Neo4j and qDrant compatible), focused on low latency graph-rag retreival for AI systems.

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.

  • go-sqlite – A Pure Golang implemented SQLite driver without CGO.

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.

db-migrator.go

CLI for versioned database schema migrations with support for PostgreSQL, MySQL, ClickHouse, Tarantool, and Apache Iceberg.

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 Tools

chproxy

HTTP proxy for ClickHouse database.

clickhouse-bulk

Collects small inserts and sends big requests to ClickHouse servers.

database-gateway

Running SQL in production with ACLs, logs, and shared links.

dbbench

Database benchmarking tool with support for several databases and scripts.

dg

A fast data generator that produces CSV files from generated relational data.

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.

go-postgres-s3-backup

Serverless PostgreSQL backups to S3 using AWS Lambda, with daily, monthly, and yearly rotation.

gorm-multitenancy

Multi-tenancy support for GORM managed databases.

GoSQLX

High-performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground.

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.

pgrwl

Cloud-native continuous backup for PostgreSQL.

pgweb

Web-based PostgreSQL database browser.

pgxcli

PostgreSQL CLI client written in Go, inspired by pgcli.

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.

xsql

AI-first cross-database CLI tool with read-only protection and structured JSON output.

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.

obreron

Fast and cheap SQL builder which does only one thing, SQL building.

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.

patcher

Powerful SQL Query builder that automatically generates SQL queries from structs.

qrafter

Type-safe SQL query builder with dialect-aware rendering, schema introspection, and migration generation.

qry

Tool that generates constants from files with raw SQL queries.

relica

Type-safe database query builder with zero production dependencies, LRU statement cache, batch operations, and support for JOINs, subqueries, CTEs, and window functions.

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.

sqlh

Zero-boilerplate SQL helper with struct tags and Go generics (CRUD, UPSERT, JOIN, benchmarks).

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.

Libraries for building and using SQL.

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

transactor

Type-safe transaction boundary abstraction with adapters for database/sql, sqlx, and pgx.

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-rqlite

A Go client for rqlite, providing easy-to-use abstractions for working with the rqlite API.

go-sql-driver/mysql

MySQL driver for Go.

go-sqlite3

SQLite3 driver for go that uses database/sql.

go-sqlite3

This Go module is compatible with the database/sql driver. It allows embedding SQLite into your application, provides direct access to its C API, supports SQLite VFS, and also includes a GORM driver.

godror

Oracle driver for Go, using the ODPI-C driver.

gofreetds

Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org).

KSQL

A Simple and Powerful Golang SQL Library.

pgx

PostgreSQL driver supporting features beyond those exposed by database/sql.

pig

Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) 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.

sqlite

Package sqlite is a sql/database driver using a CGo-free port of the C SQLite3 library.

surrealdb.go

SurrealDB Driver for Go.

ydb-go-sdk

native and database/sql driver YDB (Yandex Database).

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 `database/sql` 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.

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.

Search and Analytic Databases

clickhouse-go

ClickHouse SQL client for Go with a `database/sql` 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

A probabilistic data structure 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 time package for golang.

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-date-fns

A comprehensive date utility library for Go, inspired by date-fns, with 140+ pure and immutable functions.

go-datebin

A simple datetime parse pkg.

go-faketime

A simple `time.Now()` that honors the faketime(1) utility.

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.

Libraries for working with dates and times.

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.

circuit

Circuit breaker with gradual recovery via probabilistic throttling.

cmd-stream-go

High-performance distributed command pattern library for Go.

committer

A distributed transactions management system (2PC/3PC implementation).

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

health

Health checker for Go services with Kubernetes probe support.

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.

lock

Distributed lock family with one Go interface and five backends (filelock, flock, Redis, Postgres, etcd) — fencing tokens, semaphore mode, and observability hooks across all backends.

lura

Ultra performant API Gateway framework with middlewares.

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.

opentelemetry-go-auto-instrumentation

OpenTelemetry Compile-Time Instrumentation for Golang.

oras

CLI and library for OCI Artifacts in container registries.

outbox

Lightweight library for the transactional outbox pattern in Go, not tied to any specific relational database or broker.

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.

rpcplatform

Framework for microservices with service discovery, load balancing, and related features.

rpcx

Distributed pluggable RPC service framework like alibaba Dubbo.

Semaphore

A straightforward (micro) service orchestrator.

servicepack

Framework for running multiple services concurrently in a single binary, locally or distributed across machines.

sleuth

Library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)).

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.

Packages that help with building Distributed Systems.

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.

Tools for updating dynamic DNS records.

Email

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-imap

Batteries-included IMAP client with auto-reconnect, OAuth2, IDLE support, and built-in MIME parsing.

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.

go-spamcheck

Client for Postmark's SpamCheck API that scores a raw email against SpamAssassin rules.

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 `net/smtp`.

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.

tickstem/verify

Validate email addresses before they hit your database: syntax, MX lookup, disposable domains, and role-based inboxes.

truemail-go

Configurable Golang email validator/verifier. Verify email via Regex, DNS, SMTP and even more.

Libraries and tools that implement email creation and sending.

Embeddable Scripting Languages

anko

Scriptable interpreter written in Go.

binder

Go to Lua binding library, based on [gopher-lua](https://github.com/yuin/gopher-lua).

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.

FrankenPHP

PHP embedded in Go, with a `net/http` handler.

gentee

Embeddable scripting programming language.

gisp

Simple LISP in Go.

go-lua

Port of the Lua 5.2 VM to pure Go.

go-lua

Lua 5.4 VM implemented in pure Go.

go-php

PHP bindings for Go.

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 [starlark-go](https://github.com/google/starlark-go) 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.

Embedding other languages inside your go code.

Error Handling

ctxerrors

Wrap errors with the file, line, and function name of each call site.

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-errr

Error handling library with Catch/Recover semantics, wrapped error chains, and stack traces for Go.

go-multierror

Go (golang) package for representing a list of errors as a single error.

metaerr

A library to create your custom error builders producing structured errors with metadata from different sources and optional stacktraces.

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.

Libraries for handling errors.

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.

checksum

Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files.

copy

Copy directory recursively.

fastwalk

Fast parallel directory traversal library (used by [fzf](https://github.com/junegunn/fzf)).

flop

File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html).

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.

gopdfrab

PDF/A processing for Go.

gulter

A simple HTTP middleware to automatically handle all your file upload needs

gut/yos

Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links.

gxpdf

Modern full-lifecycle PDF library for Go — parse, extract tables, generate, and sign documents with zero CGO dependencies.

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 [parquet](https://parquet.apache.org) 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 [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt).

vfs

A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS.

Libraries for handling files and file systems.

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.

dec128

High performance 128-bit fixed-point decimal numbers.

decimal

Arbitrary-precision fixed-point decimal numbers.

decimal

High performance 64-bit decimal partially compatible with [shopspring/decimal](https://github.com/shopspring/decimal) and int64, including Weight and Length.

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-money

Implementation of Fowler's Money pattern.

go-nowpayments

Library for the crypto NOWPayments API.

gobl

Invoice and billing document framework. JSON Schema based. Automates tax calculations and validation, with tooling to convert into global formats.

indicator

Technical analysis library providing financial indicators, strategies, and backtesting framework.

ledger

A programmable financial ledger that provides a foundation for money-moving applications.

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.

paystack-sdk-go

A comprehensive, zero-dependency, and fully typed Go SDK for the Paystack API.

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.

Packages for accounting and finance.

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 `url.Values` into usable struct values of standard or custom types.

roamer

Eliminates boilerplate code for parsing HTTP requests by binding cookies, headers, query params, path params, body to structs and more by using simple tags.

Libraries for working with forms.

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.

FuncFrog

Functional helpers library providing Map, Filter, Reduce and other stream operations on generic slices Go1.18+ with lazy evaluation and error handling mechanisms.

g

Functional programming framework for 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.

Packages to support functional programming in Go.

Game Development

Ark

Archetype-based Entity Component System (ECS) for 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 [Simple DirectMedia Layer](https://www.libsdl.org/).

go3d

Performance oriented 2D/3D math package for Go.

gogpu

GPU application framework with windowing, input, and rendering built on WebGPU — reduces 480+ lines of GPU code to ~20, zero CGO (GoGPU ecosystem: [gg](https://github.com/gogpu/gg), [ui](https://github.com/gogpu/ui), [wgpu](https://github.com/gogpu/wgpu), [naga](https://github.com/gogpu/naga)).

gogpu/wgpu

Pure Go WebGPU implementation with Vulkan, DX12, and Metal backends, zero CGO (part of [GoGPU](https://github.com/gogpu) ecosystem).

GOKe

Data-Oriented (DOD), archetype-based ECS engine utilizing an L1 cache-aligned chunked SoA layout for predictable, stepless memory growth and zero-allocation execution paths.

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.

Leaf

Lightweight game server framework.

nano

Lightweight, facility, high performance golang based game server framework.

Oak

Pure Go game engine.

Pi

Game engine for creating retro games for modern computers. Inspired by Pico-8 and powered by Ebitengine.

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 [raylib](https://www.raylib.com/), a simple and easy-to-use library to learn videogames programming.

sceneCamera

Camera movement and view/projection matrices for museum, FPS, RTS, and stereo rendering modes.

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.

Awesome game development libraries.

Generators

apispec

Generate OpenAPI 3.1 specs from Go code without annotations, plus a browser UI to configure, preview, and explore the call graph.

convergen

Feature rich type-to-type copy code generator.

copygen

Generate any code based on Go types, including type-to-type converters (copy code) without reflection by default.

generis

Code generation tool providing generics, free-form macros, conditional compilation and HTML templating.

go-apispec

Generate OpenAPI 3.1 specs from Go source code via static analysis with automatic framework detection.

go-enum

Code generation for enums from code comments.

go-enum-encoding

Code generation for enum encoding 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.

protoc-gen-httpgo

Generate HTTP server and client from protobuf.

typeregistry

A library to create type dynamically.

Tools that generate Go code.

Geographic

borders

Detects image borders and converts to GeoJSON for GIS operations.

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.

WGS84

Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM).

Geographic tools and servers

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

Go Compilers

bunster

Compile shell scripts to Go.

c4go

Transpile C code to Go code.

cxgo

Transpile C code to Go code.

esp32

Transpile Go into Arduino code.

f4go

Transpile FORTRAN 77 code to Go code.

go2hx

Compiler from Go to Haxe to Javascript/C++/Java/C#.

gopherjs

Compiler from Go to JavaScript.

Tools for compiling Go to other languages and vice-versa.

Goroutines

anchor

Library to manage component lifecycle in microservice architectures.

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.

autopool

Zero-config, auto-scaling worker pool for Go with priority-aware scheduling.

breaker

Flexible mechanism to make execution flow interruptible.

channelify

Transform your function to return channels for easy and powerful parallel processing.

conc

`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 `sync.WaitGroup` with error handling and concurrency control.

go-workerpool

Inspired from Java Thread Pool, Go WorkerPool aims to control heavy Go Routines.

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: `All`, `First`, `Retry`, `Waterfall` etc., that makes asynchronous flow control more intuitive.

kyoo

Provides an unlimited job queue and concurrent worker pools.

neilotoole/errgroup

Drop-in alternative to `sync/errgroup`, 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.

powerlock

Named FIFO mutexes with context cancellation, bounded wait queues, watchdog diagnostics, pprof profiles, and Prometheus metrics.

rill

Go toolkit for clean, composable, channel-based concurrency.

routine

`routine` is a `ThreadLocal` for go library. It encapsulates and provides some easy-to-use, non-competitive, high-performance `goroutine` 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.

Tools for managing and working with Goroutines.

GUI

app

Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress.

cimgui-go

Auto generated Go wrapper for [Dear ImGui](https://github.com/ocornut/imgui) via [cimgui](https://github.com/cimgui/cimgui).

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

gogpu/ui

GPU-accelerated GUI toolkit with 22 widgets, 3 design systems (Material, Fluent, Cupertino), reactive signals, and zero CGO (part of [GoGPU](https://github.com/gogpu) ecosystem).

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.

proton

Pure Go immediate-mode GUI framework built on Gio with zero Cgo dependencies.

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.

gogpu/systray

Pure Go system tray library for Windows, macOS, and Linux with zero CGO (part of [GoGPU](https://github.com/gogpu) ecosystem).

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.

Libraries for building GUI Applications.

Toolkits

Interaction

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.

moody

Hardware event personality daemon for macOS. Monitors USB, charger, lid, and other hardware events and responds with customizable personalities.

sysinfo

A pure Go library providing Linux OS / kernel / hardware system information.

Libraries, tools, and tutorials for interacting with hardware.

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.

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

gogpu/gg

GPU-accelerated 2D rendering with Canvas-like API, zero CGO (part of [GoGPU](https://github.com/gogpu) pure Go graphics ecosystem).

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.

nativewebp

Go native WebP encoder with zero external dependencies.

picfit

An image resizing server written in Go.

pt

Path tracing engine written in Go.

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.

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.

Libraries for manipulating 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.

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.

Libraries for programming devices of the IoT.

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-cron

Cron job scheduler with runtime schedule updates, per-entry context, resilience middleware (retry, circuit breaker, rate limiting), and observability hooks; successor to robfig/cron.

go-job

A flexible and extensible job scheduling and execution library for Go.

go-quartz

Simple, zero-dependency scheduling library for Go.

go-scheduler

Job scheduler supporting standard cron expressions, custom descriptors, intervals, and task dependencies.

gocron

Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron).

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.

ofelia

Docker job scheduler (crontab for Docker); fork of mcuadros/ofelia that adds a web UI, job dependencies, retries, and job persistence.

pending

ID-based debounced task scheduler for deferred tasks with cancellation, graceful shutdown, and optional concurrency limits.

sched

A job scheduler with the ability to fast-forward time.

scheduler

Cronjobs scheduling made easy.

scheduler

Go-native distributed job scheduler with delayed tasks, batched Redis coordination, retries, lease-based recovery, and versioned queue partitioning.

tasks

An easy to use in-process scheduler for recurring tasks in Go.

tickstem/cron

Go client for scheduling HTTP cron jobs, with execution history, failure alerts, and tsk-local for testing handlers without live credentials.

tickstem/heartbeat

Go client for dead-man's switch heartbeat monitoring: ping a URL after each job run and get alerted by email if pings stop arriving.

Libraries for scheduling jobs.

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 `encoding/json` 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 `encoding/json`.

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.

silentjson

Zero-allocation JSON boundary scanner and splitter utilizing AVX2 SIMD instructions.

SJSON

Set a JSON value with one line of code.

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.

Libraries for working with JSON.

Logging

caarlos0/log

Colorful CLI logger.

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.

GoLogX

Append-only, hash-chained, optionally Ed25519-signed slog handler with offline verification of tampering.

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 [debug](https://github.com/visionmedia/debug), great for CLI tools and applications.

lazyjournal

A TUI for reading and filtering logs from journalctl, file system, Docker and Podman containers, as well Kubernetes pods.

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.

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

`io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger.

logrusly

[logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/).

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 `io.Writer` implementation with multi policies to provide log file rotation.

seelog

Logging functionality with flexible dispatching, filtering, and formatting.

sentry-go

Sentry SDK for Go. Helps monitor and track errors with real-time alerts and performance monitoring.

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-configurator

Configures the standard library log/slog logger from environment variables: level, format, source location, and stdout/stderr split.

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.

timberjack

Rolling logger with size-based, time-based, and scheduled clock-based rotation, supporting compression and cleanup.

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 `net/context` 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.

Libraries for generating and working with log files.

Machine Learning

Anneal

Machine learning compiler in Go, a from-scratch tinygrad port with a WebGPU backend.

bayesian

Naive Bayesian Classification for Golang.

born

Deep learning framework inspired by Burn (Rust), with autograd, type-safe tensors, and zero-CGO GPU acceleration.

catboost-cgo

Fast, scalable, high performance Gradient Boosting on Decision Trees library. Golang using Cgo for blazing fast inference CatBoost Model.

CloudForest

Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go.

datatrax

Data engineering and classic ML toolkit with batch processing, type coercion, and 7 algorithms in pure Go with zero dependencies.

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

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.

Libraries for Machine Learning.

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.

backlite

Type-safe, persistent, embedded task queues and background job runner w/ SQLite.

Beaver

A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.

broker

Production-grade messaging abstraction with a unified API for various brokers and built-in OpenTelemetry integration.

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 [Line](https://at.line.me/en) 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-vitotrol

Client library to Viessmann Vitotrol web service.

GoEventBus

A blazing‑fast, in‑memory, lock‑free event bus library

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 [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm).

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

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.

varmq

A storage-agnostic message queue and worker pool for concurrent Go programs.

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 [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2).

Libraries that implement messaging systems.

messaging system.

Microsoft Office

unioffice

Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.

Microsoft Excel

cellwalker

Virtually traverse Excel cell by cell's name.

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.

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.

Libraries for working with Microsoft Excel.

Microsoft Word

godocx

Library for reading and writing Microsoft Word (Docx) files.

Libraries for working with Microsoft Word.

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

go-beans

Spring-inspired dependency injection and application lifecycle framework for Go.

Go-Spring

A high-performance Go framework inspired by Spring Boot, offering DI, auto-configuration, and lifecycle management while maintaining Go's simplicity and efficiency.

gocontainer

Simple Dependency Injection Container.

godi

Microsoft-style dependency injection for Go with scoped lifetimes and generics.

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.

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.

parsley

A flexible and modular reflection-based DI library with advanced features like scoped contexts and proxy generation, designed for large-scale Go applications.

wire

Strict Runtime Dependency Injection for Golang.

Libraries for working with dependency injection.

Project Layout

ardanlabs/service

A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications.

cookiecutter-golang

A Go application boilerplate template for quick starting projects following production best practices.

go-blueprint

Allows users to spin up a quick Go project using a popular framework.

go-ddd

Domain-Driven Design template with CQRS, value objects, idempotent commands, and a transactional outbox.

go-grpc-bazel-example

Example monorepo for Go gRPC microservices with Bazel, grpc-gateway, OpenAPI, and Kubernetes.

go-module

Template for a typical module written on Go.

go-rest-api-boilerplate

AI-friendly, production-ready Go REST API boilerplate with clean architecture, JWT authentication, RBAC, PostgreSQL, Docker hot-reload, and Swagger documentation.

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.

goapp

An opinionated guideline to structure & develop a Go web application/service.

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 [this issue](https://github.com/golang-standards/project-layout/issues/117) 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.

Unofficial set of patterns for structuring projects.

Strings

bexp

Go implementation of Brace Expansion mechanism to generate arbitrary strings.

caps

A case conversion library.

go-formatter

Implements **replacement fields** surrounded by curly braces `{}` format strings.

gobeam/Stringy

String manipulation library to convert string to camel case, snake case, kebab case / slugify etc.

str

Pipeline-first string toolkit for composing transformations.

strcase

Case-insensitive implementation of the standard library's strings/bytes packages.

stringFormatter

String formatting like in Python or C# manner with the additional text formatting features.

strutil

String utilities.

sttr

cross-platform, cli app to perform various operations on string.

xstrings

Collection of useful string functions ported from other languages.

Libraries for working with strings.

Uncategorized

anagent

Minimalistic, pluggable Golang evloop/timer handler with dependency-injection.

antch

A fast, powerful and extensible web crawling & scraping framework.

archives

a cross-platform, multi-format Go library for working with archives and compression formats with a unified API and as virtual file systems compatible with io/fs.

autoflags

Go package to automatically define command line flags from struct fields.

avgRating

Calculate average score and rating based on Wilson Score Equation.

banner

Add beautiful banners into your Go applications.

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 [Browser Capabilities Project](https://browscap.org/).

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.

fake-useragent

Up-to-date simple useragent faker with real world database in Golang

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.

goffi

Pure Go FFI with libffi-style typed call interface and structured error handling for calling C libraries without CGO.

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.

pdfgen

HTTP service to generate PDF from Json requests.

persian

Some utilities for Persian language in go.

purego

A library for calling C functions from Go without Cgo.

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.

These libraries were placed here because none of the other categories seemed to fit.

Natural Language Processing

Libraries for working with human languages.

See also Text Processing and Text Analysis.

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

Morphological Analyzers

go-propisyu

Convert numbers to Russian words with correct grammatical gender and noun declension.

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 [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment).

govader-backend

Microservice implementation of [GoVader](https://github.com/jonreiter/govader).

kagome

JP morphological analyzer written in pure Go.

libtextcat

Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2.

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 [Snowball native](http://snowball.tartarus.org/).

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.

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.

Tokenizers

gojieba

This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) 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 [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm.

segment

Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/)

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.

Translation

ctxi18n

Context aware i18n with a short and consise API, pluralization, interpolation, and `fs.FS` support. YAML locale definitions are based on [Rails i18n](https://guides.rubyonrails.org/i18n.html).

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: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template.

Transliteration

enca

Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), 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 Balanced-Routing-Table (BART) for very fast IP to CIDR lookups and more.

buffstreams

Streaming protocolbuffer data over TCP made easy.

canopus

CoAP Client/Server implementation (RFC 7252).

cdns

Change DNS servers effortlessly via terminal.

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.

fibersse

Production-grade Server-Sent Events (SSE) for Fiber v3 with event coalescing, priority lanes, topic wildcards, adaptive throttling, and built-in auth.

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 [RFC 959](https://tools.ietf.org/html/rfc959).

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

`gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.

gnet

`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-pcaplite

Lightweight live packet capture library with HTTPS SNI extraction.

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.

GoProxy

A library to create a customized HTTP/HTTPS proxy server using Go.

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 [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html)

jazigo

Jazigo is a tool written in Go for retrieving configuration for multiple network devices.

kcp-go

KCP - Fast and Reliable ARQ 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.

macwifi

Wi-Fi scanning and Keychain password retrieval for macOS 13+.

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.

nethawk

Terminal UI for real-time network traffic capture, analysis, and attack detection with JSON output mode.

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

nodepass

A secure, efficient TCP/UDP tunneling solution that delivers fast, reliable access across network restrictions using pre-established TCP/QUIC/WebSocket or HTTP/2 connections.

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.

proxq

Asynchronous reverse proxy that queues each request in Redis and returns a job ID to poll for the response, with path-prefix routing, retries, and caching.

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.

roamr

CLI that scores nearby saved WiFi networks and tells you which to use, and why.

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 <https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt>.

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.

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 [gVisor](https://gvisor.dev/) 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.

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.

Libraries for working with various layers of the network.

HTTP Clients

axios4go

A Go HTTP client library inspired by Axios, providing a simple and intuitive API for making HTTP requests.

azuretls-client

An easy-to-use HTTP client 100% in Go to spoof TLS/JA3 and HTTP2 fingerprint.

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-ipmux

A library for Multiplexing HTTP requests based on multiple Source IPs.

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.

Grequest

Simple and lightweight golang package for http requests. based on powerful net/http

grequests

A Go "clone" of the great and famous Requests library.

hedge

Adaptive hedged requests for Go. Cuts p99 latency with zero configuration, based on Google's "The Tail at Scale" paper.

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.

surf

Advanced HTTP client with HTTP/1.1, HTTP/2, HTTP/3 (QUIC), SOCKS5 proxy support and browser-grade TLS fingerprinting.

tls-client

net/http.Client like HTTP Client with options to select specific client TLS Fingerprints to use for requests.

Libraries for making HTTP requests.

  • impersonate-http - Drop-in net/http.Client with a byte-exact browser TLS (JA3/JA4) and HTTP/2 (Akamai) fingerprint.

OpenGL

gl

Go bindings for OpenGL (generated via glow).

glfw

Go bindings for GLFW 3.

go-glmatrix

Go port of [glMatrix](https://glmatrix.net/) 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.

Libraries for using OpenGL in Go.

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.

Libraries that implement Object-Relational Mapping or datamapping techniques.

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.

gup

Update binaries installed by "go install".

modup

Terminal UI for Go dependency updates with outdated module detection and selective upgrading.

syft

A CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems.

Official tooling for dependency and package management

Unofficial libraries for package and dependency management.

Performance

ebpf-go

Provides utilities for loading, compiling, and debugging eBPF programs.

go-instrument

Automatically add spans to all methods and functions.

go-perfstat

Lightweight performance statistics and execution time aggregation for Go.

jaeger

A distributed tracing system.

mm-go

Generic manual memory management for golang.

otelinji

OpenTelemetry auto-instrumentation tool for adding spans to functions.

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

play

A TUI playground to experiment with your favorite programs, such as grep, sed, awk, jq and yq.

rql

Resource Query Language for REST API.

rqp

Query Parser for REST API. Filtering, validations, both `AND`, `OR` 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.

reflectpro

Callers, copiers, getters and setters for go.

reflectutils

Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string.

Resource Embedding

debme

Create an `embed.FS` from an existing `embed.FS` subdirectory.

embed

Package embed provides access to files embedded in the running Go program.

rebed

Recreate folder structures and files from Go 1.16's `embed.FS` type

vfsgen

Generates a vfsdata.go file that statically implements the given virtual filesystem.

Science and Data Analysis

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.

entitydebs

A social science tool to programmatically analyze entities in non-fictional texts with a built-in dependency parser.

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.

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.

hdf5

Pure Go implementation of the HDF5 file format for scientific data storage and exchange.

insyra

Data analysis library with statistics, visualization, Parquet support, and Python integration.

jsonl-graph

Tool to manipulate JSONL graphs with graphviz support.

matlab

Pure Go library for reading and writing MATLAB .mat files (v5-v7.3) without CGO.

MatProInterface.go

MatProInterface.go is an open source package for defining mathematical programs (e.g., convex optimization problems) in Go.

matrix

A clean, generic, zero-dependency matrix math package for Go with support for arithmetic, decompositions, and linear system solving.

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.

taxonkit

A practical and efficient NCBI taxonomy toolkit; supports querying lineage, reformatting, filtering, and creating custom taxdump files.

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.

Libraries for scientific computing and data analyzing.

Security

acmetool

ACME (Let's Encrypt) client tool with automatic renewal.

acme-proxy

Solve ACME http-01 challenge without opening port 80 to the internet, obtain certs from an external certificate authority.

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.

aes-ctr-drbg

A Deterministic Random Bit Generator based on AES in Counter mode (AES-CTR-DRBG) as specified in NIST SP 800-90A.

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.

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.

canery

Minimal, stateless authorization engine with a pluggable evaluation model.

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.

Crenox

Zero-dependency pre-commit secret scanner using Aho-Corasick for high-performance credentials leak detection.

deidentify

Deterministic, format-preserving removal of personally identifiable information from text and structured data.

dongle

A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption.

dotlock

Encrypted .env vault manager with interactive TUI for managing secrets across multiple environments and profiles.

encid

Encode and decode encrypted integer IDs.

entpassgen

Entropy Password Generator with extensive command line arguments to generate random strings securely including digits, passwords, and passwords built using obscure dictionary words mixed with symbols and digits.

firewalld-rest

A rest application to dynamically update firewalld rules on a linux server.

fort

Audits macOS security settings across 16 checks, reports a score, and fixes issues where it safely can. Single binary, installable via Homebrew.

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 [YARA](https://github.com/plusvic/yara), 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.

gost-crypto

Go library for Russian GOST cryptographic standards (digital signatures, Streebog hash, Kuznechik cipher, MGM AEAD) backed by OpenSSL gost-engine.

gspy

Forensic goroutine-to-syscall inspector for live Go processes.

Interpol

Rule-based data generator for fuzzing and penetration testing.

leakhound

Static analysis tool to detect accidental logging of sensitive struct fields, preventing data leaks in logs.

lego

Pure Go ACME client library and CLI tool (for use with Let's Encrypt).

luks.go

Pure Golang library to manage LUKS partitions.

mcprobe

Security scanner for MCP servers with prompt injection detection, tool shadowing, and SARIF output.

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

pii-shield

Zero-code log sanitization sidecar for Kubernetes that redacts PII from logs.

pm

Unix-style password manager written in Go to save your data with OpenPGP encryption.

procscope

Process-scoped runtime investigator using eBPF to trace process lifecycle, file activity, and network connections.

qrand

Client for the ANU Quantum Numbers (AQN) API, providing quantum-mechanically secure random data.

Razify

CLI to scan, validate and audit .env files for leaked secrets and environment drift.

redact

Redact sensitive information from slog-based logs using a configurable pipeline.

SafeDep/vet

Protect against malicious open source packages.

secret

Prevent your secrets from leaking into logs, std\* etc.

secretgenerator

CSPRNG-backed credential generator with a versioned JSON schema for passwords, passphrases, secrets, API keys, and PINs.

secure

HTTP middleware for Go that facilitates some quick security wins.

secureio

An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` 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.

urusai

Urusai ("noisy" in Japanese) is a Go implementation of a random HTTP/DNS traffic noise generator that helps protect privacy by creating digital smokescreens while browsing.

veil

Local HTTPS proxy that hides API credentials from AI coding agents. OS keychain integration, format-aware placeholders, SQLite audit log.

Libraries that are used to help make your application more secure.

Serialization

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.

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

mus-go

MUS format serializer for Go.

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.

proto

Parser and writer for Google ProtocolBuffers .proto files.

structomap

Library to easily and dynamically generate maps from static structures.

unitpacking

Library to pack unit vectors into as fewest bytes as possible.

Libraries and tools for binary serialization.

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.

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.

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.

goshs

SimpleHTTPServer replacement with file upload/download, WebDAV, SFTP, SMB, TLS, authentication, and share links.

Kono

lightweight extendable API Gateway in Go - parallel fan-out, flexible aggregation, and zero configuration magic.

lets-proxy2

Reverse proxy for handle https with issue certificates in fly from lets-encrypt.

minio

Community Maintained Fork of minio (Object Storage Service).

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.

OpenRun

Open-source alternative to Google Cloud Run and AWS App Runner. Easily deploy internal tools across a team.

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.

relay

MCP server with 40+ tools for AI agents. File operations, web search, screenshots, multi-agent coordination. Single Go binary.

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.

Trickster

HTTP reverse proxy cache and time series accelerator.

wd-41

A (w)eb (d)evelopment server with automatic live-reload on file changes.

whois

Self-hosted WHOIS/RDAP query service and MCP server for domains, IPv4/IPv6 addresses, CIDRs and ASNs.

Wish

Make SSH apps, just like that!

Stream Processing

go-etl

A lightweight toolkit for data source extraction, transformation, and loading (ETL).

go-streams

Go stream processing library.

goio

An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2.

gostream

Type-safe stream processing library inspired by the Java Streams API.

machine

Go library for writing and generating stream workers with built in metrics and traceability.

nibbler

A lightweight package for micro batch processing.

ro

Reactive Programming: declarative and composable API for event-driven applications.

signals

Type-safe reactive state management inspired by Angular Signals with computed values, effects, and dependency tracking.

stream

Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...

StreamSQL

A lightweight streaming SQL engine for real-time data processing.

Libraries and tools for stream processing and reactive programming.

Template Engines

bagme

HTML/CSS to PDF rendering with TeX-quality typesetting in pure Go.

ego

Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled.

fasttemplate

Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/).

gomponents

HTML 5 components in pure Go, that look something like this: `func(name string) g.Node { return Div(Class("headline"), g.Textf("Hi %v!", name)) }`.

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.

gox

HTML templates as first-class Go expressions, with seamless editor support.

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.

Razor

Razor view engine for Golang.

Soy

Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/).

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.

templator

A type-safe HTML template rendering engine for Go.

Libraries and tools for templating and lexing.

Testing

Libraries for testing codebases and generating test data.

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.

assay

Framework-agnostic evaluation library for testing Go agents and MCP servers with deterministic checks, CI-ready exit codes, and zero-code YAML-based testing.

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 `database_cleaner` 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.

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-httpbin

HTTP testing and debugging tool with various endpoints for client testing.

go-mutesting

Mutation testing for Go with CI quality gates, coverage-aware MSI, baseline tracking, and git-diff filtering.

go-mysql-test-container

Golang MySQL testcontainer to help with MySQL integration testing.

go-snaps

Jest-like snapshot testing in Golang.

go-test-coverage

Tool that reports coverage of files below set threshold.

go-testdeep

Extremely flexible golang deep comparison, extends the go testing package.

go-testing

Go testing extension, that allows a simple setup of strongly isolated unit, component, and integration test providing advanced mock support extending gomock and gock.

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.

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 `testing` 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.

httper

CLI runner for JetBrains .http files with scripting, assertions, gRPC, and load testing.

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.

should

Testing library with zero dependencies, detailed struct diffs and human-readable error messages.

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.

Testo

Plugin-based testing framework with suites, parallel tests, hooks and parametrization. Inspired by Pytest.

testsql

Generate test data from SQL files before testing and clear it after finished.

testza

Full-featured test framework with nice colorized output.

tparse

CLI tool for summarizing go test output. Pipe friendly. Compatible with go test flags.

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.

Mock

counterfeiter

Tool for generating self-contained mock objects.

fabricator

Type-safe factories for generating mock and fake data in Go, inspired by factory_boy and interface-forge.

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.

gomock

Mocking framework for the Go programming language.

gomock

CLI tool to generate typed and framework-agnostic interface mocks, with support for generics.

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.

mockfs

Mock filesystem for Go testing with error injection and latency simulation, built on `testing/fstest.MapFS`.

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.

moxie

Generate mock methods on embedded structs.

pgxmock

A mock library implementing [pgx - PostgreSQL Driver and Toolkit](https://github.com/jackc/pgx/).

timex

A test-friendly replacement for the native `time` package.

xgo

A general pureposed function mocking library.

Fuzzing and delta-debugging/reducing/shrinking

go-fuzz

Randomized testing system.

Tavor

Generic fuzzing and delta-debugging framework.

Selenium and browser control tools

bonk

Fast, stealth-first browser automation library using Chrome DevTools Protocol over WebSocket with no external dependencies.

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.

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.

selenosis

Stateless Kubernetes-native hub that routes Selenium, Playwright, and MCP sessions to on-demand browser pods via custom resources.

Fail injection

failpoint

An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang.

Text Processing

Libraries for parsing and manipulating texts.

See also Natural Language Processing and Text Analysis.

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.

sq

Convert data from SQL databases or document formats like CSV or Excel into formats such as JSON, Excel, CSV, HTML, Markdown, XML, and YAML.

textwrap

Wraps text at end of lines. Implementation of `textwrap` module from Python.

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 [html.Node](https://pkg.go.dev/golang.org/x/net/html#Node) objects.

mdsmith

fast, auto-fixing Markdown linter and formatter. Checks style, readability, structure, and cross-file integrity.

mxj

Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages.

picoloom

Markdown-to-PDF converter with CLI and Go library APIs.

toml

TOML configuration format (encoder/decoder with reflection).

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.

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 `fmt.Printf("%#v")`.

godump (goforj)

Pretty-print Go structs with Laravel/Symfony-style dumps, full type info, colorized CLI output, cycle detection, and private field access.

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 [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go.

normalize

Sanitize, normalize and compare fuzzy text.

parseargs-go

string argument parser that understands quotes and backslashes.

prattle

Scan and parse LL(1) grammars simply and efficiently.

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.

Regular Expressions

coregex

Production regex engine with Rust regex-crate architecture: multi-engine DFA/NFA, SIMD prefilters, drop-in stdlib replacement.

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.

Sanitation

bluemonday

HTML Sanitizer.

gofuckyourself

A sanitization-based swear filter for Go.

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.

go-sitemap-parser

Go language library for parsing Sitemaps.

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.

RSS

podcast

iTunes Compliant and RSS 2.0 Podcast Generator in Golang

Utility/Miscellaneous

ahocorasick

High-performance Aho-Corasick multi-pattern string matching with DFA compilation and SIMD prefilter, up to 7 GB/s throughput (part of [coregx](https://github.com/coregx) ecosystem).

go-runewidth

Functions to get fixed width of the character or string.

kace

Common case conversions covering common initialisms.

lancet

A comprehensive, Lodash-like utility library for Go

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.

uniwidth

High-performance Unicode character width calculation with SWAR optimization, O(1) lookup tables, and ZWJ emoji support.

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 [Airtable API](https://airtable.com/api).

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 Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/index.html).

aws-sdk-go

The official AWS SDK for the Go programming language.

bqwriter

High Level Go Library to write data into [Google BigQuery](https://cloud.google.com/bigquery) at a high throughout.

brewerydb

Go library for accessing the BreweryDB API.

cachet

Go client library for [Cachet (open source status page system)](https://cachethq.io/).

circleci

Go client library for interacting with CircleCI's API.

codeship-go

Go client library for interacting with Codeship's API v2.

coinpaprika-go

Go client library for interacting with Coinpaprika's API.

colony-sdk-go

Go client library for [The Colony](https://thecolony.cc) — a public social network whose users are AI agents.

device-check-go

Go client library for interacting with [iOS DeviceCheck API](https://developer.apple.com/documentation/devicecheck) 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.

gcm

Go library for Google Cloud Messaging.

geo-golang

Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](https://developer.mapquest.com/documentation/api/geocoding/), [Nominatim](https://nominatim.org/release-docs/latest/api/Overview/), [OpenCage](https://opencagedata.com/api), [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx), [Mapbox](https://www.mapbox.com/developers/api/geocoding/), and [OpenStreetMap](https://wiki.openstreetmap.org/wiki/Nominatim) 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 [Atlassian Cloud](https://www.atlassian.com/enterprise/cloud) 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 [Chronos](https://mesos.github.io/chronos/) Job Scheduler

go-gerrit

Go client library for [Gerrit Code Review](https://www.gerritcodereview.com/).

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 [imgur](https://imgur.com)

go-jira

Go client library for [Atlassian JIRA](https://www.atlassian.com/software/jira)

go-lark

An easy-to-use unofficial SDK for [Feishu](https://open.feishu.cn/) and [Lark](https://open.larksuite.com/) Open Platform.

go-marathon

Go library for interacting with Mesosphere's Marathon PAAS.

go-myanimelist

Go client library for accessing the [MyAnimeList API](https://myanimelist.net/apiconfig/references/api/v2).

go-openai

OpenAI ChatGPT, DALL·E, Whisper API library for Go.

go-openproject

Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API.

go-postman-collection

Go module to work with [Postman Collections](https://learning.getpostman.com/docs/postman/collections/creating-collections/) (compatible with Insomnia).

go-redoc

Embedded OpenAPI/Swagger documentation ui for Go using [ReDoc](https://redocly.com/).

go-restcountries

Go library for the [REST Countries API](https://countrylayer.com/).

go-salesforce

Go client library for interacting with the [Salesforce REST API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_list.htm).

go-sophos

Go client library for the [Sophos UTM REST API](https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en) with zero dependencies.

go-swagger-ui

Go library containing precompiled [Swagger UI](https://swagger.io/tools/swagger-ui/) for serving swagger json.

go-telegraph

Telegraph publishing platform API client.

go-trending

Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github.

go-unsplash

Go client library for the [Unsplash.com](https://unsplash.com) 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.

gomalshare

Go library MalShare API [malshare.com](https://www.malshare.com/)

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.

gopaapi5

Go Client Library for [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/).

gopensky

Go client implementation for [OpenSKY Network](https://opensky-network.org/) live's API (airspace ADS-B and Mode S data).

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.

httpsms-go

Go client for the httpSMS API.

igdb

Go client for the [Internet Game Database API](https://api.igdb.com/).

ip2location-io-go

Go wrapper for the IP2Location.io API [IP2Location.io](https://www.ip2location.io/).

jokeapi-go

Go client for [JokeAPI](https://sv443.net/jokeapi/v2/).

lark

[Feishu](https://open.feishu.cn/)/[Lark](https://open.larksuite.com/) Open API Go SDK, Support ALL Open API and Event Callback.

lastpass-go

Go client library for the [LastPass](https://www.lastpass.com/) API.

lemonsqueezy-go

Go client for the Lemon Squeezy API.

libgoffi

Library adapter toolbox for native [libffi](https://sourceware.org/libffi/) integration

libopenapi

Parse, validate, and work with OpenAPI, Swagger, Overlays, and Arazzo specifications.

Medium

Golang SDK for Medium's OAuth2 API.

megos

Client library for accessing an [Apache Mesos](https://mesos.apache.org/) 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 [NewsAPI](https://newsapi.org/).

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 [RAWG Video Games Database](https://rawg.io/) API

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.

sonarqube-client-go

Go client library and command-line client for the SonarQube Web API.

spec

Lightweight OpenAPI 3.x builder supporting static generation and popular frameworks like chi, echo, gin, fiber, mux and more.

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.

threads-go

Go client library for the Meta Threads API with OAuth 2.0, rate limiting, and type-safe error handling.

Trello

Go wrapper for the Trello API.

TripAdvisor

Go wrapper for the TripAdvisor API.

tumblr

Go wrapper for the Tumblr v2 API.

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.

Libraries for accessing third party APIs.

Utilities

abstract

Abstractions and utilities to get rid of boilerplate code in business logic.

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.

boring

Simple command-line SSH tunnel manager.

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.

config-file-validator

Cross Platform tool to validate configuration files.

contem

Drop-in context.Context replacement for graceful shutdown Go applications.

cookie

Cookie struct parsing and helper package.

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

[Top-like](https://ctop.sh) 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.

debounce

A zero-allocation debouncer written in Go.

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.

gh-image

A gh CLI extension that uploads images to GitHub issues, PRs, and READMEs from the command line, producing user-attachments URLs that respect repository visibility.

ghokin

Parallelized formatter with no external dependencies for gherkin (cucumber, behat...).

git-time-metric

Simple, seamless, lightweight time tracking for Git.

git-tools

Tool to help manage git tags.

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-Constant

Generic typed constant sets with safe string parsing for Go's missing enum type.

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-safecast

Safe number type conversion library that prevents integer overflow and underflow (addresses gosec G115 and CWE-190).

go-sitemap-generator

XML Sitemap generator written in Go.

go-snk

Type-safe generic helpers for slices, maps, strings, errors, JSON, HTTP, and containers, organized as small independently adoptable packages.

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.

go-utils

Simple, performant generic utilities for Go inspired by JavaScript and Python (map, filter, reduce, and more).

goback

Go simple exponential backoff package.

goctx

Get your context value with high performance.

godaemon

Utility to write daemons.

godoclive

Generates interactive API documentation from Go HTTP handlers using static analysis of chi, gin, and net/http routers.

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 `.env` or any `io.Reader` 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.

healthcheck

A simple yet powerful readiness test for Kubernetes.

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.

LAN Orangutan

Network device discovery and inventory with persistent labeling, multi-network scanning, and Tailscale integration.

lang

Generic one-liners to work with variables, slices and maps without boilerplate code.

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.

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.

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

optional

Optional struct fields and vars.

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.

rate

High-performance rate limiting library with token bucket and AIMD strategies.

rclient

Readable, flexible, simple-to-use client for REST APIs.

release

CLI for Keep-a-changelog formatted changelogs.

relimpact

Fast API compatibility reports for Go projects.

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.

retro

Handy retry-on-error library with extensive flexibility (backoff strategies, caps, etc).

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 `sql.Rows` 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 `os.Signal` 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.

sqlex

Drop-in modernization of jmoiron/sqlx with fixed SQL lexer bugs, automatic IN-clause expansion, pluggable hooks, and unified DB/Tx/Conn interfaces.

sqlx

provides a set of extensions on top of the excellent built-in database/sql package.

sqlz

Extension for the database/sql package, adding named queries, struct scanning, and batch operations.

sshman

SSH Manager for authorized_keys files on multiple remote servers.

stacktower

Visualize dependency graphs as physical tower structures, inspired by XKCD #2347.

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.

xpool

Yet another golang type safe object pool using generics.

yogo

Check yopmail mails from command line.

General utilities and tools to make your life easier.

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.

guid

Fast cryptographically safe Guid generator for Go (~10x faster than `uuid`).

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.

Libraries for working with UUIDs.

Validation

checkdigit

Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.).

go-validator

Validation library using Generics.

gody

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

govy

strongly-typed validation rules over functional interface, powered by generics and reflection free with heavy focus on crafting clear and information-rich error messages.

jio

jio is a json schema validator similar to [joi](https://github.com/hapijs/joi).

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.

Zog

A [Zod](https://github.com/colinhacks/zod) inspired schema builder for runtime value parsing and validation.

Libraries for 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.
  • valix Go package for validating requests

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.

ggc

A Git CLI tool with both traditional command-line and interactive incremental-search UI, workflow support, and configurable keybindings.

git-courer

Local MCP server for Git operations using Ollama to save tokens and prevent secret leakage.

git2go

Go bindings for libgit2.

githooks

Per-repo and shared Git hooks with version control and auto update.

gitty

Single-binary Git/GitHub CLI that replaces add→commit→push with one command; human-readable syntax, no external dependencies.

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.

Libraries for version control.

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-mpd

Parser and generator library for MPEG-DASH manifest files.

goav

Comprehensive Go bindings for FFmpeg.

gortsplib

Pure Go RTSP server and client library.

hls-m3u8

Parser and generator for HLS (M3U8) playlists; kept up to date with the spec.

libvlc-go

Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player).

manifestor

Zero-dependency library for parsing, filtering, transforming, and building HLS and DASH manifests.

mp4ff

Library and tools for working with MP4 files containing video, audio, subtitles, or metadata.

v4l

Video capture library for Linux, written in Go.

Libraries for manipulating video.

Web Frameworks

aichteeteapee

Batteries-included HTTP server library with a router, middleware stack, WebSocket hubs, file uploads, and OpenAPI validation.

Andurel

Rails-inspired full-stack Go web framework with scaffolding, database tooling, and server-rendered or Inertia frontends.

Atreugo

High performance and extensible micro web framework with zero memory allocations in hot paths.

Barf

Basically, A Remarkable Framework for building JSON-based web APIs. It is entirely unobtrusive and re-invents no wheel. It is crafted such that getting started is easy and quick while being flexible enough for more complex use cases.

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.

doors

Server-driven framework for building stateful, reactive web applications entirely in Go.

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.

go-api-boot

A gRpc-first micro-service framework. Features include ODM support for Mongo, cloud resource support (AWS/Azure/Google), and a fluent dependency injection which is customized for gRpc. Additionally, grpc-web is supported directly, enabling browser access to all gRpc APIs without a proxy.

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.

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.

Goshtoso

Server-rendered UI components for Go applications, built with templ, Tailwind CSS, HTMX, and Alpine.js.

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.

httpsuite

HTTP request parsing and RFC 9457 problem responses for Go, with a stdlib-only core and optional validation.

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.

NotNet

A lightweight Go framework for building fast, ergonomic RESTful APIs with middleware and flexible routing.

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.

Ronykit

Web framework with pluggable architecture and very performant.

rux

Simple and fast web framework for build golang HTTP applications.

templui

Modern UI Components for Go & Templ.

togo

Full-stack framework that ships your Go backend and React frontend as a single binary; a Laravel-artisan-grade CLI.

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., `http.HandlerFunc`)..

Xun

Web framework built on Go's built-in html/template and net/http package’s router. It is designed to be lightweight, fast, and easy to use while providing a simple and intuitive API for building web applications with advanced features such as middleware, routing, and template rendering.

Yokai

Simple, modular, and observable Go framework for backend applications.

Full stack 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.

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 `X-Forwarded-For` 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 `http.Client` 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.

stats

Go middleware that stores various information about your web application.

Actual middlewares

Libraries for creating HTTP middlewares

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 `httprouter`. The first router fit for `fasthttp`.

FastRouter

a fast, flexible HTTP router written in Go.

Fox

A high-performance HTTP router for building reverse proxies and API gateways, with first-class support for mutating routes at runtime.

fursy

HTTP router with type-safe generic handlers, automatic OpenAPI 3.1 generation from code, and RFC 9457 error responses.

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 `net/context`.

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 `net/context`.

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 `httprouter` with `net/context` 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.

Webhooks Server

HookRun

Lightweight webhook action engine (~3MB single binary, zero deps) that executes commands and scripts from YAML rules with token/HMAC/IP auth and hot reload.

webhook

Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server.

webhooked

A webhook receiver on steroids: handle, secure, format and store a Webhook payload has never been easier.

WebhookX

A webhooks gateway for message receiving, processing, and reliable delivering.

Windows

d3d9

Go bindings for Direct3D9.

go-ole

Win32 OLE implementation for golang.

gosddl

Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL.

windowsupdate

A Golang binding for Windows Update Agent API using go-ole.

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.

Flowbaker

Self-hosted execution engine for building, connecting, and automating no-code workflows.

go-dag

A framework developed in Go that manages the execution of workflows described by directed acyclic graphs.

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.

Libraries for creating Workflows.

XML

XML-Comp

Simple command line XML comparer that generates diffs of folders, files and tags.

xml2map

XML to MAP converter written Golang.

xmlquery

xmlquery is Golang XPath package for XML query.

xmlwriter

Procedural XML generation API based on libxml2's xmlwriter module.

xpath

XPath package for Go.

zek

Generate a Go struct from XML.

Libraries and tools for manipulating 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 [golang](https://github.com/openziti/sdk-golang) allowing you to embed zero trust principles directly into your applications. The [OpenZiti Test Kitchen](https://github.com/openziti-test-kitchen) has numerous examples to draw inspiration from including a [zero trust ssh client - zssh](https://github.com/openziti-test-kitchen/zssh)

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.

Libraries and tools to implement Zero Trust architectures.

Code Analysis

apicompat

Checks recent changes to a Go project for backwards incompatible changes.

ast-metrics

Static code analyzer for Go and other languages: complexity, coupling, cohesion and maintainability metrics, with HTML, JSON, Markdown and SARIF reports.

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

deadmono

Wrapper around deadcode for detection of dead code in Go monorepo.

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.

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.

golines

Formatter that automatically shortens long lines in Go code.

gomarklint

Markdown linter with built-in HTTP link validation, single binary, no Node.js required.

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.

staticcheck

staticcheck is `go vet` on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.

structalign

Shows how a struct's fields could be reordered to use less memory, printing a diff instead of rewriting files.

stto

A light-weight superfast line of code counter written in pure Go.

tickgit

CLI and go package for surfacing code comment TODOs (in any language) and applying a `git blame`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.

Source code analysis tools, also known as Static Application Security Testing (SAST) Tools.

  • golangci-lint – A fast Go linters runner. It runs linters in parallel, uses caching, supports yaml config, has integrations with all major IDE and has dozens of linters included.
  • revive – ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint.
  • testifylint – A linter that checks usage of github.com/stretchr/testify.

Editor Plugins

coc-go language server extension for Vim/Neovim

This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) 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-mode

Go mode for GNU/Emacs.

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.

Plugin for text editors and IDEs.

Go Generate Tools

envdoc

generate documentation for environment variables from Go source files.

generic

flexible data type 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.

oapixconstgen

Generate typed Go constants from an OpenAPI spec's x-constants extension.

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

decouple

Find “overspecified” function parameters that could be generalized with interface types.

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.

go-template-playground

An interactive environment to create and test Go templates.

godbg

Implementation of Rusts `dbg!` macro for quick and easy debugging during development.

gofindimpl

Find all structs that implement a given Go interface across a codebase.

gomodrun

Go tool that executes and caches binaries included in go.mod files.

gotemplate.io

Online tool to preview `text/template` 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.

gotutor

Online Go Debugger & Visualizer.

govisual

Zero-config, pure-Go HTTP request visualizer & debugger for local Go web development.

igo

An igo to go transpiler (new language features for Go language!)

lensm

Go assembly and source viewer.

modver

Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) 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 `go test` 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

Software written in Go.

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.

aws-doctor

Diagnose AWS costs, detect idle resources, and optimize cloud spending directly from your terminal 🩺 ☁️.

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.

cassowary

Modern cross-platform HTTP load-testing tool written in Go.

chaosmonkey

A resiliency tool that helps applications tolerate random instance failures.

colima

Container runtimes on macOS (and Linux) with minimal setup.

Ddosify

High-performance load testing tool, written in Golang.

decompose

tool to generate and process Docker containers connections graphs.

Den

Self-hosted sandbox runtime for AI agents. Open-source E2B alternative.

DepCharge

Helps orchestrating the execution of commands across the many dependencies in larger projects.

dish

A lightweight, remotely configurable monitoring service.

Docker

Open platform for distributed applications for developers and sysadmins.

docker-go-mingw

Docker image for building Go binaries for Windows with MinGW toolchain.

docker-volume-backup

Backup Docker volumes locally or to any S3, WebDAV, Azure Blob Storage, Dropbox or SSH compatible storage.

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 `ProxyCommand`.

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.

gitl

AI review of git commit ranges with risk scoring (low/medium/high), changelog generation, and multi-repo activity digest. GitHub Action included.

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.

goma-gateway

A Lightweight API Gateway and Reverse Proxy with declarative config, robust middleware, and support for REST, GraphQL, TCP, UDP, and gRPC.

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.

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.

k0s

Zero Friction Kubernetes distribution.

k3d

Little helper to run CNCF's k3s in Docker.

k3s

Lightweight Kubernetes.

k6

A modern load testing tool, using Go and JavaScript.

k9s

Kubernetes CLI to manage your clusters in style.

kala

Simplistic, modern, and performant job scheduler.

kcli

Command line tool for inspecting kafka topics/partitions/messages.

kepfi

A smart alternative to rm with a recovery bin and storage tracking.

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.

kubefwd

Bulk Kubernetes port forwarding with unique IPs per service for local development.

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.

lstags

Tool and API to sync Docker images across different registries.

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.

pingtower

Lightweight self-hosted uptime monitor for websites and APIs.

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.

podman-tui

Terminal UI for Podman management.

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.

sigma

OCI-native container image registry, support OCI-native artifact, scan artifact, image build etc.

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.

tickstem/uptime

Go client for HTTP uptime monitoring with SSL expiry alerts and configurable response assertions.

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.

Updatecli

A universal declarative update policy engine.

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.

Wide

Web-based IDE for Teams using Golang.

winrm-cli

Cli tool to remotely execute commands on Windows machines.

zerohand

A simple and efficient load testing tool for Web APIs.

Other Software

Backrest

Web-based UI and orchestrator for restic backup.

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.

bluetuith

TUI Bluetooth manager for Linux.

borg

Terminal based search engine for bash snippets.

boxed

Dropbox based blog engine.

Chapar

Chapar is a cross-platform Postman alternative built with go, aims to help developers to test their api endpoints. it support http and grpc protocols.

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.

CrunchyCleaner

A lightweight, software cache cleanup tool for Windows & Linux.

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

Cloud builder for CLI's written in go lang

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

GooseForum

Self-hosted forum platform built with Go, Vue, and Tailwind CSS.

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.

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.

Layli

Draw pretty layout diagrams as code.

Leaps

Pair programming service using Operational Transforms.

lgo

Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility.

LightCMS

Self-hosted content management system with static page generation, role-based access control, and an MCP server for agent-driven content operations.

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.

mac-cleanup-go

Preview-first TUI for cleaning macOS caches, logs, and temporary files.

mdv

CLI tool that renders Markdown files in the browser with live reload, GFM, syntax highlighting, Mermaid diagrams, and PDF export.

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.

onWatch

Monitor AI API quotas across providers locally with historical tracking, alerts, and a web dashboard to avoid surprise throttling and budget overruns.

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.

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.

tinycare-tui

Small terminal app that shows git commits from the last 24 hours and week, current weather, some self care advice, a joke, and you current todo list tasks.

tldx

Bulk domain availability checker using RDAP, DNS, and WHOIS fallback with keyword permutation generation.

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

Where to discover new Go libraries.

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.

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.

vizb

A CLI tool to visualize Go benchmark data in 4D.

Conferences

GoCon

Tokyo, Japan.

GoDays

Berlin, Germany.

GoLab

Florence, Italy.

GopherCon

Varied Locations Each Year, USA.

GopherCon Africa

Nairobi, Kenya.

GopherCon Australia

Sydney, Australia.

GopherCon Brazil

Florianópolis, Brazil.

GopherCon China

Shanghai, China.

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.

E-Books

E-books for purchase

100 Go Mistakes: How to Avoid Them
Black Hat Go

Go programming for hackers and pentesters.

Build an Orchestrator in Go
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 A Compiler 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.

Free e-books

A Go Developer's Notebook
An Introduction to Programming in Go
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.

Build Web Application with Golang
Building Web Apps With Go
Go 101

A book focusing on Go syntax/semantics and all kinds of details.

Go AST Book (Chinese)

A book focusing on Go `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.

Learning Go
Network Programming With Go
Practical Go Lessons
Spaceship Go A Journey to the Standard Library
The Go Programming Language
The Golang Standard Library by Example (Chinese)
The Little Go Book
Web Application with Go the Anti-Textbook

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.

gopher-stickers
gophericons
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.

Meetups

Basel Go Meetup
Belfast Gophers
Belgrade Golang Meetup
Berlin Golang
Brisbane Gophers
Bärner Go Meetup - Berne, Switzerland
Go Ireland - Dublin
Go Language NYC
Go London User Group
Go Remote Meetup
Go Toronto
Go User Group Atlanta
GoBandung
GoBridge, San Francisco, CA
GoCracow - Krakow, Poland
GoJakarta
Golang Amsterdam
Golang Argentina
Golang Athens
Golang Baltimore, MD
Golang Bangalore
Golang Belo Horizonte - Brazil
Golang Boston
Golang Bulgaria
Golang Cardiff, UK
Golang Copenhagen
Golang Curitiba - Brazil
Golang DC, Arlington, VA
Golang Dorset, UK
Golang Estonia
Golang Gurgaon, India
Golang Hamburg - Germany
Golang Israel
Golang Kathmandu
Golang Lima - Peru
Golang Lyon
Golang Marseille
Golang Melbourne
Golang Milano
Golang North East
Golang Paris
Golang Poland
Golang Pune
Golang Roma
Golang Rotterdam
Golang Singapore
Golang Stockholm
Golang Sydney, AU
Golang São Paulo - Brazil
Golang Taipei
Golang Thessaloniki
Golang Torino
Golang Turkey
Golang Vancouver, BC
Golang Vienna, Austria
Golang Москва
GoSF - San Francisco, CA
Istanbul Golang
Lagos Gophers
Nairobi Gophers
Seattle Go Programmers
Ukrainian Golang User Groups
Utah Go User Group
Women Who Go - San Francisco, CA
Zürich Gophers - Zurich, Switzerland

Add the group of your city/country here (send PR)

Style Guides

CockroachDB
enra/go-styleguide
GitLab
Google
Hyperledger
Thanos
Trybe
Uber

Social Media

Twitter

@GoDiscussions
@golang
@golang_news
@golangch
@golangweekly

Reddit

r/golang

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 Weekly

Each monday projects, tutorials and articles about Go.

golang-nuts

Go mailing list.

Gopher Community Chat

Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)).

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 [@francesc](https://twitter.com/francesc).

Learn Go Programming

Learn Go concepts with illustrations.

Made with Golang
pkg.go.dev

Documentation for open source Go packages.

studygolang

The community of studygolang in China.

Trending Go repositories on GitHub today

Good place to find new Go libraries.

TutorialEdge - Golang
  • Libs.tech – Awesome Go libraries and hidden gems

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.

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 WebAssembly Tutorial - Building a Simple Calculator
go-clean-template

Clean Architecture template for Golang services.

go-patterns

Curated list of Go design patterns, recipes and idioms.

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 Implement Role-Based Access Control (RBAC) Authorization in Golang

A guide to implementing Role-Based Access Control (RBAC) in Golang, including code examples, covering various methods to secure app endpoints with role-based authorization.

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.

The world’s easiest introduction to WebAssembly with Golang
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.

Your basic Go

Huge collection of tutorials and how to's.

Guided Learning

The Go Developer Roadmap

A visual roadmap that new Go developers can follow through to help them learn Go.

The Go Interview Practice

A GitHub repository offering coding challenges for Go technical interview preparation.

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.