awesome-go
A curated list of awesome Go frameworks, libraries and software
https://github.com/avelino/awesome-go
Last synced: 2 days ago
JSON representation
-
Actor Model
- Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang.
- Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang.
- Hollywood - Blazingly fast and light-weight Actor engine written in Golang.
- ProtoActor - Distributed actors for Go, C#, and Java/Kotlin.
- asyncmachine-go/pkg/machine - Graph control flow library (AOP, actor, state-machine).
-
Artificial Intelligence
- langchaingo - LangChainGo is a framework for developing applications powered by language models.
- LocalAI - Open Source OpenAI alternative, self-host AI models.
- fun - The simplest but powerful way to use large language models (LLMs) in Go.
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas.
- chromem-go - Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence.
- Ollama - Run large language models locally.
- goai - Go SDK for building AI applications. One SDK, 20+ providers. Inspired by Vercel AI SDK.
- 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.
- 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.
- AegisFlow - AI gateway for routing, securing, and monitoring LLM traffic across 10+ providers. OpenAI-compatible API, WASM policy plugins, canary rollouts, real-time dashboard.
- ai - A Go toolkit for building AI agents and applications across multiple providers with unified LLM, embeddings, tool calling, and MCP integration.
- localaik - LocalStack-style local emulation of OpenAI and Gemini APIs; single Docker container, llama.cpp + Gemma 3 backend.
- 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.
- Aetheris - AI Agent execution runtime with event sourcing, checkpoint recovery, and At-Most-Once execution guarantee. Written in Go.
- agent-sdk-go - Framework for building stateful AI agents in Go.
- 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.
- mcp-go - Go implementation of the Model Context Protocol for building MCP servers and clients in Go.
- 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.
- 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.
- 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.
- jargo - Framework for building real-time voice AI agents over WebRTC, wiring speech-to-text, LLMs, and text-to-speech into a streaming pipeline.
- 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.
- 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.
- Smeldr - AI-native content backend with typed lifecycle management, native MCP tools for every content type, and zero runtime dependencies.
- agy-mcp - Model Context Protocol (MCP) server wrapping the Antigravity CLI to run prompts and peer reviews.
- crewai-go - Idiomatic Go port of CrewAI (multi-agent orchestration). Zero dependencies, stdlib only.
- keen-code - A context-efficient terminal-based AI coding agent. Provider agnostic, supports MCPs, Agent Skills, Subagents, and more. Comes with a simple and straightforward TUI.
- ai-gateway - OpenAI-compatible LLM gateway that routes requests across 30 providers with fallback, rate limiting, budgets, guardrails, and observability.
- snip - CLI proxy that reduces LLM token usage by 60-90% with declarative YAML filters. Drop-in for Claude Code, Cursor, Copilot, and Gemini. rtk alternative in Go.
- claude-code-go - Go library for driving the Claude Code CLI non-interactive prompt surface from Go programs.
- Cynative - Framework for building security engineering AI agents in Go. Read-only by construction, built-in sandbox, 45 agent blueprints for AWS, GCP, Azure, K8s, GitHub & GitLab deep research.
- Genkit - Framework created by Google for building AI-powered and agentic applications in idiomatic Go.
- golem - Framework for building dependable AI agents with typed dependencies, zero external dependencies, and native MCP support.
- thermal - Terminal contribution heatmap, streak tracker, and token leaderboard for AI coding assistants.
-
Audio and Music
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- GoAudio - Native Go Audio Processing Library.
- gosamplerate - libsamplerate bindings for go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- id3v2 - ID3 decoding and encoding library for Go.
- go-mpris - Client for mpris dbus interfaces.
- beep - A simple library for playback and audio manipulation.
- Oto - A low-level library to play sound on multiple platforms.
- music-theory - Music theory models in Go.
- voxrai-ai - AI voice agents with a JSON configuration, STT → LLM → TTS pipelines over WebSocket and WebRTC.
- go-resample - Pure-Go (no cgo) audio sample-rate converter with sinc, linear, and zero-order-hold converters.
- go-aac - Pure-Go AAC-LC encoder and decoder ported from FFmpeg.
- go-audio-resampler - Pure-Go, high-quality audio resampler with SIMD acceleration.
- go-flac - Native Go FLAC encoder and decoder with SIMD acceleration.
- go-opus - Native Go implementation of the Opus audio codec (RFC 6716) with RFC-compliant decoder.
- go-wav - Pure-Go WAV/RIFF reader and writer with RF64 and BW64 support for files larger than 4 GiB.
- gocue - Audio analysis CLI that detects cue-in, cue-out, and overlay points and measures EBU R128 loudness, emitting JSON for Liquidsoap.
-
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.
- branca - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+.
- cookiestxt - provides a parser of cookies.txt file format.
- go-guardian - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication.
- go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
- 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.
- 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.
- 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).
- 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.
- sjwt - Simple jwt generator and parser.
- goiabada - An open-source authentication and authorization server supporting OAuth2 and OpenID Connect.
- permissions - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt.
- casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC.
- loginsrv - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam.
- scope - Easily Manage OAuth2 Scopes In Go.
- sessionup - Simple, yet effective HTTP session management and identification package.
- x509proxy - Library to handle X509 proxy certificates.
- spicedb - A Zanzibar-inspired database that enables fine-grained authorization.
- go-iam - Developer-first Identity and Access Management system with a simple UI.
- otpgen - Library to generate TOTP/HOTP codes.
- go-githubauth - Utilities for GitHub authentication: generate and use GitHub application and installation tokens.
- go-jwt - JWT authentication package providing access tokens and refresh tokens with fingerprinting, Redis storage, and automatic refresh capabilities.
- 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.
- go-jwt - A JWT (JSON Web Token) library for Go.
- melange - Compiles OpenFGA authorization schemas into PL/pgSQL functions that run fine-grained relationship-based access control checks inside PostgreSQL.
-
Benchmarks
-
Other Software
- 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.
- 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.
- gocostmodel - Benchmarks of common basic operations for the Go language.
- vizb - A CLI tool to visualize Go benchmark data in 4D.
-
-
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.
- 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.
- nview - Local monitoring tool for a Cardano Node. It's a TUI (terminal user interface) designed to fit most screens.
- tronlib - A comprehensive, production-ready Go SDK for interacting with the TRON blockchain with TRC20 token support.
- pactus - A full-node implementation of the Pactus blockchain in Go.
-
Bot Building
- bot - Zero-dependencies Telegram Bot library with additional UI components.
- echotron - An elegant and concurrent library for Telegram Bots 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.
- wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.
- arikawa - A library and framework for the Discord API.
- telegram-bot-api - Simple and clean Telegram bot client.
- TG - Telegram Bot Framework for Go.
- Wisp - Event-driven trading framework for Go. Spot, perpetual futures, prediction markets. Multi-exchange (Bybit, Hyperliquid, Polymarket).
- ymsdk - Go SDK for Yandex Messenger Bot API with type-safe models, automatic retry, and rate-limit handling.
- teleflow - Simple, type-safe Telegram bot framework with fluent flows and automatic state management.
- go-joe - A general-purpose bot library inspired by Hubot but written in Go.
-
Build Automation
- 1build - Command line tool to frictionlessly manage project-specific commands.
- anko - Simple application watcher for multiple programming languages.
- 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.
- Task - simple "Make" alternative.
- taskctl - Concurrent task runner.
- xc - Task runner with README.md defined tasks, executable markdown.
- gaper - Builds and restarts a Go project when it crashes or some watched file changes.
- gilbert - Build system and task runner for Go projects.
- realize - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths.
- air - Air - Live reload for Go apps.
- rex - Zero-config universal project runner. Detects your stack (Go, Node, Python, Rust, PHP, Zig, Elixir) and runs the right command.
-
Code Analysis
-
Routers
- 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#.
- goimports - Tool to fix (add, remove) your Go imports automatically.
- apicompat - Checks recent changes to a Go project for backwards incompatible changes.
- asty - Converts golang AST to JSON and JSON to AST.
- blanket - blanket is a tool that helps you catch functions which don't have direct unit tests in your Go packages.
- ChainJacking - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.
- Chronos - Detects race conditions statically
- dupl - Tool for code clone detection.
- errcheck - Errcheck is a program for checking for unchecked errors in Go programs.
- fatcontext - Fatcontext detects nested contexts in loops or function literals.
- 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.
- golang-ifood-sdk - iFood API SDK.
- golangci-lint
- golines - Formatter that automatically shortens long lines in Go code.
- GoPlantUML - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them.
- goreturns - Adds zero-value return statements to match the func return types.
- gostatus - Command line tool, shows the status of repositories that contain Go packages.
- lint - Run linters as part of go test.
- php-parser - A Parser for PHP written in Go.
- revive - in replacement for `golint`.
- testifylint
- 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.
- stto - A light-weight superfast line of code counter written in pure Go.
- gomarklint - Markdown linter with built-in HTTP link validation, single binary, no Node.js required.
- structalign - Shows how a struct's fields could be reordered to use less memory, printing a diff instead of rewriting files.
- ast-metrics - Static code analyzer for Go and other languages: complexity, coupling, cohesion and maintainability metrics, with HTML, JSON, Markdown and SARIF reports.
-
Programming Languages
Categories
Software Packages
200
Utilities
192
Database
165
Miscellaneous
119
Networking
115
Third-party APIs
114
Testing
106
Command Line
101
Web Frameworks
97
Data Structures and Algorithms
89
Text Processing
76
Logging
74
Websites
72
Security
70
Distributed Systems
68
Configuration
67
Database Drivers
66
Messaging
60
Goroutines
54
Natural Language Processing
47
Images
45
Meetups
43
Science and Data Analysis
43
Authentication and Authorization
42
JSON
42
Machine Learning
41
Financial
40
Server Applications
39
Code Analysis
37
Artificial Intelligence
37
E-Books
34
GUI
30
File Handling
29
Game Development
27
Email
26
ORM
26
Date and Time
25
Go Tools
24
Embeddable Scripting Languages
24
Job Scheduler
23
Serialization
21
Error Handling
21
Template Engines
20
Audio and Music
20
Query Language
18
Validation
18
Bot Building
18
Geographic
18
Generators
17
Continuous Integration
17
Benchmarks
15
Conferences
14
UUID
14
Video
14
IoT (Internet of Things)
14
Build Automation
14
Go Generate Tools
13
Editor Plugins
13
Blockchain
13
Forms
12
Functional
11
Version Control
11
Gophers
11
Performance
10
Stream Processing
10
Hardware
9
Reflection
9
WebAssembly
8
Workflow Frameworks
8
Microsoft Office
8
Style Guides
8
Go Compilers
7
OpenGL
6
XML
6
Zero Trust
5
Social Media
5
Actor Model
5
Data Integration Frameworks
4
Webhooks Server
4
Windows
4
Resource Embedding
4
Dynamic DNS
3
Package Management
3
CSS Preprocessors
2
Sub Categories
Search and Analytic Databases
730
Utility/Miscellaneous
416
HTTP Clients
305
Routers
151
Standard CLI
146
Other Software
117
DevOps Tools
112
Transliteration
93
Free e-books
82
Testing Frameworks
74
Uncategorized
60
Databases Implemented in Go
52
Advanced Console UIs
45
Tutorials
39
Caches
31
SQL Query Builders
31
Reddit
30
NoSQL Database Drivers
29
Database Tools
28
Dependency Injection
27
Parsers/Encoders/Decoders
24
Middlewares
24
Database Schema Migration
23
Mock
23
Relational Database Drivers
22
Project Layout
22
Miscellaneous Data Structures and Algorithms
20
Morphological Analyzers
17
Markup Languages
16
E-books for purchase
14
Strings
10
Text Analysis
10
Scrapers
10
Queues
9
Tokenizers
9
Bloom and Cuckoo Filters
9
Translation
9
Formatters
8
Maps
7
Trees
7
Regular Expressions
6
Interfaces to Multiple Backends
6
Microsoft Excel
6
Bit-packing and Compression
6
Selenium and browser control tools
6
Language Detection
5
Twitter
4
Guided Learning
4
Iterators
4
Sets
4
Pipes
4
Data Structure and Algorithm Collections
4
Slugifiers
3
Nullable Types
3
Bit Sets
2
Sanitation
2
Fuzzing and delta-debugging/reducing/shrinking
2
Fail injection
1
RSS
1
Microsoft Word
1
Keywords
golang
1,300
go
1,158
cli
126
golang-library
108
database
88
json
75
testing
65
http
62
sql
60
docker
56
golang-package
52
mysql
47
kubernetes
47
framework
44
postgresql
43
library
42
middleware
37
api
37
concurrency
35
parser
35
command-line
34
security
33
redis
33
distributed-systems
31
orm
31
performance
31
devops
30
logging
30
cache
30
tui
30
configuration
30
log
29
terminal
28
microservices
28
logger
28
microservice
27
sqlite
26
grpc
26
generics
26
linux
25
macos
25
awesome-go
25
machine-learning
25
validation
24
rest-api
24
llm
24
server
23
cloud-native
23
cross-platform
22
dependency-injection
22