Awesome Go Overview
Structured collection of Go frameworks, libraries, tools, and resources. Automatically maintained and up-to-date with metadata, filtering, and comprehensive categorization.
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 abordage/awesome-go · ⭐ 3 · 🏷️ Programming Languages
Awesome Go
Automated. Curated. Ranked.
Go libraries, tools, and applications from the community. This awesome list is automatically maintained with daily GitHub API updates. Projects are re-ranked daily based on current activity metrics.
Daily process: Merge community PRs → Scan repos → Filter stale projects → Recalculate scores → Rebuild list
- AI & Machine Learning
- Audio & Video
- Auth
- Bots & Chat
- CLI & Terminal
- Concurrency
- Configuration
- Data Formats
- Data Structures
- Databases
- DevOps & Build
- Finance & Blockchain
- GUI & Desktop
- Game Development
- Geospatial
- Go Tooling
- Hardware & IoT
- Networking
- Queues & Pub/Sub
- Science
- Scripting
- Security
- Testing & Quality
- Text & NLP
- Third-party APIs
- Utilities
- Version Control & Packages
- Web Development
- Workflow & Scheduling
AI & Machine Learning
AI APIs
- sashabaranov/go-openai (⭐11k) — OpenAI API client for Go ☆
10,588 - wit-ai/wit-go (⭐170) — Go client for wit.ai HTTP API ☆
170
Artificial Intelligence
- ollama/ollama (⭐165k) — Run LLMs locally ☆
165,088 - mudler/LocalAI (⭐43k) — Local OpenAI alternative ☆
43,624 - tmc/langchaingo (⭐8.8k) — LangChain for Go, the easiest way to write LLM-based programs in Go ☆
8,853 - maximhq/bifrost (⭐2.8k) — Fastest LLM gateway for Go ☆
2,931 - philippgille/chromem-go (⭐891) — Embeddable vector database for Go ☆
894 - universal-tool-calling-protocol/go-utcp (⭐101) — Official Go implementation of the UTCP ☆
101 - presbrey/ollamafarm (⭐95) — Manage multiple Ollama instances ☆
95
Machine Learning
- gorgonia/gorgonia (⭐5.9k) — Machine learning library for Go ☆
5,915 - otiai10/gosseract (⭐3.1k) — OCR using Tesseract in Go ☆
3,077 - gomlx/gomlx (⭐1.3k) — GoMLX: An Accelerated Machine Learning Framework For Go ☆
1,340 - jbrukh/bayesian (⭐810) — Naive Bayesian Classification for Golang. ☆
810 - knights-analytics/hugot (⭐574) — Onnx transformer pipelines in Golang ☆
577 - patrikeh/go-deep (⭐555) — Artificial Neural Network ☆
555 - c-bata/goptuna (⭐277) — A hyperparameter optimization framework, inspired by Optuna. ☆
277
Audio & Video
Audio
- ebitengine/oto (⭐1.9k) — A low-level library to play sound on multiple platforms ☆
1,883 - gordonklaus/portaudio (⭐834) — Go bindings for the PortAudio audio I/O library ☆
834 - DylanMeeus/GoAudio (⭐409) — Go tools for audio processing & creation ☆
409 - gen2brain/malgo (⭐391) — Mini audio library ☆
391 - mewkiz/flac (⭐351) — Package flac provides access to FLAC (Free Lossless Audio Codec) streams. ☆
351 - tosone/minimp3 (⭐133) — Decode mp3 ☆
133
Images
- hybridgroup/gocv (⭐7.4k) — Computer vision with OpenCV 4 ☆
7,402 - anthonynsimon/bild (⭐4.2k) — Image processing algorithms in pure Go ☆
4,184 - cshum/imagor (⭐3.9k) — Fast, secure image processing server and Go library, using libvips ☆
3,918 - thoas/picfit (⭐2.3k) — An image resizing server written in Go ☆
2,328 - gographics/imagick (⭐1.9k) — Go binding to ImageMagick's MagickWand C API ☆
1,866 - tdewolff/canvas (⭐1.8k) — Vector graphics in Go ☆
1,792 - davidbyttow/govips (⭐1.5k) — A lightning fast image processing and resizing library for Go ☆
1,544 - yeqown/go-qrcode (⭐819) — Customizable QR code generator ☆
820 - HugoSmits86/nativewebp (⭐399) — Native webp encoder for Go ☆
401 - auyer/steganography (⭐353) — LSB steganography in pure Go ☆
353 - kolesa-team/go-webp (⭐303) — Simple and fast webp library for golang ☆
303 - Pixboost/transformimgs (⭐289) — Open source image CDN. ☆
289 - qmuntal/gltf (⭐276) — Go library for encoding glTF 2.0 files ☆
276 - gojek/darkroom (⭐236) — Image processing engine and proxy service ☆
236 - aofei/cameron (⭐131) — An avatar generator for Go. ☆
131 - piglig/go-qr (⭐47) — A native, high-quality and minimalistic QR code generator ☆
47
Video
- asticode/go-astisub (⭐689) — Manipulate subtitles in Go ☆
689 - asticode/go-astiav (⭐682) — Golang ffmpeg and libav C bindings ☆
683 - Eyevinn/mp4ff (⭐622) — MP4/ISOBMFF tools and library ☆
623 - asticode/go-astits (⭐614) — Demux and mux MPEG Transport Streams (.ts) natively in GO ☆
614 - adrg/libvlc-go (⭐505) — Go bindings for libVLC ☆
506 - korandiz/v4l (⭐90) — Facade to the Video4Linux video capture interface. ☆
90 - Eyevinn/hls-m3u8 (⭐54) — HLS m3u8 library in Go ☆
55 - jonoton/scout (⭐26) — Video surveillance with motion detection ☆
26 - unki2aut/go-mpd (⭐32) — MPEG-DASH manifest library ☆
32
Auth
Authentication
- golang-jwt/jwt (⭐8.9k) — Go implementation of JSON Web Tokens (JWT). ☆
8,951 - markbates/goth (⭐6.5k) — Multi-provider authentication ☆
6,475 - golang/oauth2 (⭐5.8k) — Go OAuth2 ☆
5,821 - aarondl/authboss (⭐4.2k) — The boss of http auth. ☆
4,165 - alexedwards/scs (⭐2.5k) — HTTP Session Management for Go ☆
2,533 - lestrrat-go/jwx (⭐2.3k) — Complete JWx implementation ☆
2,332 - openshift/osin (⭐1.9k) — Golang OAuth2 server library ☆
1,934 - dghubble/gologin (⭐1.9k) — Go login handlers for authentication providers (OAuth1, OAuth2) ☆
1,946 - zitadel/oidc (⭐1.8k) — OpenID Connect client and server ☆
1,779 - cristalhq/jwt (⭐688) — Safe, simple and fast JSON Web Tokens for Go ☆
688 - shaj13/go-guardian (⭐610) — Authentication library for Go ☆
610 - go-jose/go-jose (⭐487) — An implementation of JOSE standards (JWE, JWS, JWT) in Go ☆
487 - abraithwaite/jeff (⭐271) — Jeff provides the simplest way to manage web sessions in Go. ☆
271 - Kwynto/gosession (⭐258) — Quick session for net/http ☆
258 - leodip/goiabada (⭐185) — Goiabada is an OAuth2 / OpenID Connect server written in Go. ☆
187 - jellydator/sessionup (⭐131) — Straightforward HTTP session management ☆
131 - brianvoe/sjwt (⭐122) — Simple JWT Golang ☆
122 - essentialkaos/branca (⭐96) — Encrypted API tokens ☆
96 - icza/session (⭐118) — Session management for web servers ☆
118 - mengzhuo/cookiestxt (⭐22) — cookiestxt implement parser of cookies txt format ☆
22
Authorization
- apache/casbin (⭐20k) — Authorization library for Go ☆
19,916 - ory/keto (⭐5.3k) — Customizable permission server ☆
5,285 - openfga/openfga (⭐4.9k) — Fine-grained authorization server ☆
4,882 - cerbos/cerbos (⭐4.3k) — Open core authorization layer ☆
4,260
Bots & Chat
Bot Frameworks
- tucnak/telebot (⭐4.6k) — Telebot is a Telegram bot framework in Go. ☆
4,579 - go-telegram/bot (⭐1.6k) — Telegram Bot API Go framework ☆
1,635 - mymmrac/telego (⭐965) — Telegram Bot API library for Go ☆
969 - diamondburned/arikawa (⭐579) — A Golang library and framework for the Discord API. ☆
582 - NicoNex/echotron (⭐424) — An elegant and concurrent library for the Telegram bot API in Go. ☆
426 - gempir/go-twitch-irc (⭐394) — go irc client for twitch.tv ☆
395 - innogames/slack-bot (⭐206) — Slack bot for Jenkins, Jira, PRs ☆
206 - mr-linch/go-tg (⭐129) — Telegram Bot API client ☆
129 - slack-io/slacker (⭐59) — Slack Bot Framework ☆
59 - onrik/micha (⭐32) — Client lib for Telegram bot api ☆
32
Chat APIs
- bwmarrin/discordgo (⭐5.8k) — (Golang) Go bindings for Discord ☆
5,842 - slack-go/slack (⭐4.9k) — Slack API in Go ☆
4,917 - huandu/facebook (⭐1.4k) — A Facebook Graph API SDK For Go. ☆
1,448 - chyroc/lark (⭐465) — Lark/Feishu Open API SDK ☆
468 - go-lark/lark (⭐240) — Feishu/Lark SDK for Go ☆
241 - switchupcb/disgo (⭐110) — Next-gen Discord API library ☆
110
CLI & Terminal
Advanced Console UIs
- charmbracelet/bubbletea (⭐41k) — A powerful little TUI framework ☆
40,592 - antonmedv/fx (⭐20k) — Terminal JSON viewer & processor ☆
20,337 - gizak/termui (⭐14k) — Golang terminal dashboard ☆
13,524 - charmbracelet/lipgloss (⭐11k) — Style definitions for nice terminal layouts ☆
10,838 - jroimartin/gocui (⭐11k) — Minimalist Go package aimed at creating Console User Interfaces. ☆
10,530 - charmbracelet/bubbles (⭐8k) — TUI components for Bubble Tea ☆
7,998 - c-bata/go-prompt (⭐5.5k) — Interactive prompts for Go ☆
5,471 - pterm/pterm (⭐5.4k) — Modern terminal output library ☆
5,384 - schollz/progressbar (⭐4.6k) — Thread-safe progress bar ☆
4,648 - guptarohit/asciigraph (⭐3k) — ASCII line graphs in terminal ☆
2,980 - mum4k/termdash (⭐3k) — Terminal-based dashboard ☆
2,982 - briandowns/spinner (⭐2.5k) — Terminal spinner indicators ☆
2,519 - vbauerster/mpb (⭐2.5k) — Multi progress bar ☆
2,485 - muesli/termenv (⭐2k) — Terminal color support ☆
1,976 - gookit/color (⭐1.6k) — Terminal color rendering ☆
1,576 - logrusorgru/aurora (⭐1.5k) — ANSI colors for Printf ☆
1,481 - mattn/go-isatty (⭐892) — Check if terminal is TTY ☆
893 - mattn/go-colorable (⭐805) — Colorable writer for Windows ☆
805 - box-cli-maker/box-cli-maker (⭐618) — Render highly customizable boxes in the terminal ☆
618 - Evertras/bubble-table (⭐561) — Table component for Bubble Tea ☆
562 - DMcP89/tinycare-tui (⭐17) — TUI application written in GO inspired by tiny-care-terminal ☆
19
Standard CLI
- spf13/cobra (⭐43k) — A Commander for modern Go CLI interactions ☆
43,432 - urfave/cli (⭐24k) — Fast CLI framework for Go ☆
23,940 - elves/elvish (⭐6.2k) — Scripting shell for Go ☆
6,252 - alecthomas/kingpin (⭐3.6k) — Command-line parser ☆
3,559 - dnote/dnote (⭐3k) — Command-line notebook ☆
3,017 - spf13/pflag (⭐2.7k) — POSIX/GNU-style flags ☆
2,715 - jessevdk/go-flags (⭐2.7k) — Command-line option parser ☆
2,696 - alexflint/go-arg (⭐2.2k) — Struct-based argument parsing ☆
2,239 - carapace-sh/carapace-bin (⭐1.7k) — Multi-shell completion binary ☆
1,734 - nanovms/ops (⭐1.5k) — Build and run unikernels ☆
1,475 - carapace-sh/carapace (⭐1.2k) — Multi-shell completion library ☆
1,200 - posener/complete (⭐952) — Bash completion in Go ☆
952 - ddddddO/gtree (⭐328) — Generate ASCII tree from Markdown ☆
328 - leaanthony/clir (⭐197) — Simple CLI library ☆
197 - urfave/sflags (⭐167) — Generate flags from structs ☆
167 - hedzr/cmdr (⭐141) — POSIX-compliant CLI parser ☆
141 - reeflective/readline (⭐135) — Shell library with inputrc ☆
135 - cristalhq/acmd (⭐137) — Simple CLI package ☆
138 - reeflective/console (⭐105) — Console library for Cobra ☆
106 - codingconcepts/env (⭐126) — Tag-based environment configuration for structs ☆
126 - jxskiss/mcli (⭐44) — Minimal but powerful CLI ☆
44 - dixonwille/wlog (⭐67) — Cross-platform logging ☆
67 - DavidGamba/go-getoptions (⭐61) — Command line option parser with completion ☆
61 - nyaosorg/go-readline-ny (⭐33) — Readline for Go ☆
34 - carapace-sh/carapace-spec (⭐29) — Multi-shell completion library ☆
29 - sgreben/flagvar (⭐48) — CLI argument types for flag ☆
48 - hashicorp/cli (⭐36) — CLI library for Go ☆
36
Concurrency
Actor Model
- asynkron/protoactor-go (⭐5.4k) — Ultra fast distributed actors for Go ☆
5,433 - ergo-services/ergo (⭐4.5k) — Actor framework with network transparency ☆
4,464 - anthdm/hollywood (⭐2.2k) — Blazingly fast and light-weight Actor engine written in Golang ☆
2,199 - Tochemey/goakt (⭐326) — Distributed actor framework ☆
328
Goroutines
- panjf2000/ants (⭐14k) — ants is the most powerful and reliable pooling solution for Go. ☆
14,364 - benmanns/goworker (⭐2.8k) — Resque-compatible background worker ☆
2,850 - alitto/pond (⭐2.1k) — High-performance worker pool ☆
2,109 - destel/rill (⭐1.8k) — Channel-based concurrency toolkit ☆
1,803 - xxjwxc/gowp (⭐522) — Goroutine worker pool ☆
522 - earthboundkid/flowmatic (⭐397) — Structured concurrency ☆
398 - reugn/async (⭐299) — Async computation package ☆
300 - vladopajic/go-actor (⭐284) — Actor model library ☆
284 - timandy/routine (⭐287) — ThreadLocal for Go ☆
287 - mborders/artifex (⭐214) — In-memory job queue ☆
214
Stream Processing
- reugn/go-streams (⭐2.2k) — Stream processing library ☆
2,162 - Breeze0806/go-etl (⭐184) — ETL toolset for Go ☆
184 - fulminate-io/machine (⭐166) — Machine is a workflow/pipeline library for processing data ☆
166 - mariomac/gostream (⭐170) — Java Streams port for Go ☆
170 - rulego/streamsql (⭐54) — SQL-based stream processing for IoT ☆
55
Configuration
- spf13/viper (⭐30k) — Go configuration with fangs ☆
30,141 - caarlos0/env (⭐6k) — Parse environment variables to structs ☆
6,051 - knadh/koanf (⭐3.9k) — Lightweight config management ☆
3,914 - alecthomas/kong (⭐3k) — Command-line parser for Go ☆
2,999 - ilyakaznacheev/cleanenv (⭐2.1k) — Minimalistic environment config reader ☆
2,074 - adrg/xdg (⭐964) — XDG Base Directory implementation ☆
967 - cristalhq/aconfig (⭐624) — Simple config loader ☆
624 - gookit/config (⭐581) — Config management with formats ☆
581 - nil-go/konf (⭐372) — Simplest config loader for Go ☆
372 - kkyr/fig (⭐384) — Minimalist config library ☆
384 - hjson/hjson-go (⭐346) — Hjson for Go ☆
346 - vrischmann/envconfig (⭐250) — Env config library ☆
250 - chaindead/zerocfg (⭐199) — Zero-effort config management ☆
199 - beatlabs/harvester (⭐134) — Watch and notify config changes ☆
134 - BoRuDar/configuration (⭐108) — Set struct fields from env, flags, files ☆
108 - gurkankaymak/hocon (⭐89) — HOCON config library for Go ☆
89 - PaddleHQ/go-aws-ssm (⭐62) — AWS System Manager interface ☆
62 - go-simpler/env (⭐80) — Load env vars to struct ☆
80 - omeid/uconfig (⭐72) — Lightweight config management ☆
72 - sakirsensoy/genv (⭐43) — Easy env variable handling ☆
43 - num30/config (⭐60) — Declarative configuration ☆
60 - wkhere/bcl (⭐29) — Basic Configuration Language ☆
29 - atelpis/enflag (⭐38) — Unify env and flag parsing ☆
38 - dsbasko/go-cfg (⭐47) — Unified config reading ☆
47 - greencoda/confiq (⭐39) — Config struct decoder ☆
39 - romshark/yamagiconf (⭐18) — YAML config framework ☆
18 - nasermirzaei89/env (⭐22) — Zero-dep env package ☆
22 - deatil/go-array (⭐22) — Read/set map, slice, JSON data ☆
22
Data Formats
JSON
- tidwall/gjson (⭐15k) — Fast JSON value extraction ☆
15,461 - bytedance/sonic (⭐9.3k) — A blazingly fast JSON serializing & deserializing library ☆
9,280 - Jeffail/gabs (⭐3.5k) — Dynamic JSON parsing ☆
3,531 - valyala/fastjson (⭐2.4k) — Fast JSON parser for Go ☆
2,443 - ohler55/ojg (⭐940) — Optimized JSON for Go ☆
941 - wI2L/jsondiff (⭐624) — JSON Patch diff computation ☆
624 - spyzhov/ajson (⭐291) — Abstract JSON with JSONPath ☆
291 - Andrew-M-C/go.jsonvalue (⭐202) — Unstructured JSON solution ☆
202 - iOliverNguyen/ujson (⭐85) — Minimal JSON parser ☆
85 - neilotoole/jsoncolor (⭐51) — Colorized JSON output ☆
51
Serialization
- golang/protobuf (⭐10k) — Protocol buffers for Go ☆
10,058 - ugorji/go (⭐1.9k) — Codec for msgpack, cbor, json ☆
1,943 - linkedin/goavro (⭐1.1k) — Goavro is a library that encodes and decodes Avro data. ☆
1,055 - fxamacker/cbor (⭐1k) — CBOR codec with extensions ☆
1,027 - jszwec/csvutil (⭐1k) — CSV to struct mapping ☆
1,031 - ghostiam/binstruct (⭐112) — Binary to struct decoder ☆
112 - csweichel/bel (⭐46) — Generate TypeScript from Go ☆
46 - o1egl/fwencoder (⭐27) — Fixed width file parser ☆
27 - tiendc/go-csvlib (⭐18) — High-level CSV library ☆
18
XML
- miku/zek (⭐825) — Generate Go struct from XML ☆
825 - antchfx/xpath (⭐735) — XPath for Go ☆
735 - antchfx/xmlquery (⭐486) — XPath XML query ☆
485
Data Structures
Bit-packing and Compression
- RoaringBitmap/roaring (⭐2.8k) — Compressed bitmaps for Go ☆
2,851 - iancmcc/bingo (⭐51) — Zero-allocation binary encoding ☆
51 - amallia/go-ef (⭐41) — A Go implementation of the Elias-Fano encoding ☆
41
Bloom and Cuckoo Filters
- bits-and-blooms/bloom (⭐2.8k) — Bloom filter implementation ☆
2,761 - tylertreat/BoomFilters (⭐1.6k) — Probabilistic data structures for streams ☆
1,647 - seiflotfy/cuckoofilter (⭐1.2k) — Cuckoo Filter: Practically Better Than Bloom ☆
1,221 - OldPanda/bloomfilter (⭐20) — Bloom filter compatible with pybloom ☆
20
Maps
- mhmtszr/concurrent-swiss-map (⭐262) — Thread-safe concurrent hash map ☆
262 - goradd/maps (⭐52) — Generic map library for Go ☆
52 - srfrog/dict (⭐46) — Python-like dictionaries for Go ☆
46
Miscellaneous
- Workiva/go-datastructures (⭐7.9k) — Performant, threadsafe data structures ☆
7,909 - deckarep/golang-set (⭐4.7k) — Generic set type for Go ☆
4,655 - bits-and-blooms/bitset (⭐1.5k) — Go package implementing bitsets ☆
1,488 - liyue201/gostl (⭐1.1k) — Data structures modeled on C++ STL ☆
1,138 - axiomhq/hyperloglog (⭐1k) — HyperLogLog with optimizations ☆
1,030 - kelindar/bitmap (⭐370) — Simple dense bitmap index in Go with binary operators ☆
371 - barweiss/go-tuple (⭐96) — Go 1.18+ generic tuple ☆
97 - seiflotfy/count-min-log (⭐69) — Go implementation of Count-Min-Log ☆
69 - s0rg/quadtree (⭐41) — Generic, zero-alloc, 100%-test covered Quadtree for golang ☆
41 - StudioSol/set (⭐29) — Simple set data structure ☆
29 - nazar256/parapipe (⭐37) — Paralleling pipeline ☆
37 - bobg/merkle (⭐21) — Merkle hash trees ☆
21
Queues
- gammazero/deque (⭐765) — Fast ring-buffer deque (double-ended queue) ☆
767 - adrianbrad/queue (⭐331) — Multiple queue implementations ☆
332 - embano1/memlog (⭐136) — A Kafka log inspired in-memory and append-only data structure ☆
137 - mikestefanello/backlite (⭐138) — SQLite-backed task queues ☆
139
Databases
Caches
- golang/groupcache (⭐13k) — Distributed cache library ☆
13,339 - dgraph-io/ristretto (⭐6.8k) — A high performance memory-bound Go cache ☆
6,806 - eko/gocache (⭐2.8k) — Multi-store caching library ☆
2,843 - maypok86/otter (⭐2.5k) — A high performance caching library for Go ☆
2,548 - VictoriaMetrics/fastcache (⭐2.3k) — Fast in-memory cache for Go ☆
2,342 - jellydator/ttlcache (⭐1.2k) — An in-memory cache with item expiration and generics ☆
1,228 - viccon/sturdyc (⭐1.2k) — Caching with advanced concurrency ☆
1,246 - EchoVault/SugarDB (⭐529) — Embeddable and distributed in-memory alternative to Redis. ☆
529 - faabiosr/cachego (⭐372) — Golang Cache component - Multiple drivers ☆
372 - Yiling-J/theine-go (⭐362) — high performance in-memory cache ☆
363 - elastic/go-freelru (⭐262) — GC-less, fast and generic LRU cache for Go ☆
263 - samber/hot (⭐244) — In-memory caching library for read-intensive Go applications ☆
246 - naughtygopher/pocache (⭐231) — Preemptive optimistic caching ☆
231 - OrlovEvgeny/go-mcache (⭐103) — Sharded in-memory KV cache ☆
102 - erni27/imcache (⭐123) — A zero-dependency generic in-memory cache Go library ☆
123 - zekroTJA/timedmap (⭐74) — A thread safe map which has expiring key-value pairs. ☆
74 - codingsince1985/couchcache (⭐66) — A RESTful caching micro-service in Go backed by Couchbase ☆
66 - mdaliyan/icache (⭐23) — High-performance generic cache ☆
23
Database Schema Migration
- golang-migrate/migrate (⭐18k) — Database migrations. CLI and Golang library. ☆
18,231 - bytebase/bytebase (⭐14k) — Database DevSecOps platform ☆
13,820 - pressly/goose (⭐10k) — A database migration tool. Supports SQL migrations and Go functions. ☆
10,313 - ariga/atlas (⭐8.1k) — Declarative schema migrations with schema-as-code workflows ☆
8,174 - amacneil/dbmate (⭐6.8k) — A lightweight, framework-agnostic database migration tool. ☆
6,775 - rubenv/sql-migrate (⭐3.4k) — SQL schema migration tool for Go. ☆
3,411 - skeema/skeema (⭐1.4k) — Declarative pure-SQL schema management for MySQL and MariaDB ☆
1,361 - go-gormigrate/gormigrate (⭐1.2k) — Minimalistic database migration helper for Gorm ORM ☆
1,153 - sunary/sqlize (⭐124) — SQL parsing and migration toolkit ☆
124 - robinjoseph08/go-pg-migrations (⭐86) — A Go package to help write migrations with go-pg/pg. ☆
86 - adlio/schema (⭐42) — Embedded schema migration package for Go ☆
42 - khezen/avro (⭐48) — Apache AVRO for go ☆
48 - muir/libschema (⭐17) — database schema migrations on a per-library basis [Go] ☆
17
Database Tools
- vitessio/vitess (⭐21k) — Database clustering for MySQL ☆
20,844 - sosedoff/pgweb (⭐9.3k) — Cross-platform client for PostgreSQL databases ☆
9,270 - go-mysql-org/go-mysql (⭐4.9k) — a powerful mysql toolset with Go ☆
4,921 - prest/prest (⭐4.5k) — PostgreSQL REST API server ☆
4,534 - ContentSquare/chproxy (⭐1.4k) — Open-Source ClickHouse http proxy and load balancer ☆
1,439 - cybertec-postgresql/pg_timetable (⭐1.3k) — Advanced PostgreSQL scheduler ☆
1,327 - liweiyi88/onedump (⭐940) — Effortless database administration tool ☆
947 - HDT3213/rdb (⭐600) — Redis RDB parser for Go ☆
600 - nikepan/clickhouse-bulk (⭐505) — Batch inserts for ClickHouse ☆
506 - wesql/wescale (⭐314) — MySQL proxy with read/write split ☆
314 - gatewayd-io/gatewayd (⭐278) — database gateway for building data-driven applications ☆
279 - sj14/dbbench (⭐115) — Database benchmarking tool ☆
115 - bartventer/gorm-multitenancy (⭐78) — Multi-tenancy for GORM ☆
79 - kazhuravlev/database-gateway (⭐30) — Safe access to production databases ☆
32 - codingconcepts/dg (⭐43) — Generate CSV from data models ☆
43
Databases Implemented in Go
- prometheus/prometheus (⭐63k) — The Prometheus monitoring system and time series database. ☆
63,169 - milvus-io/milvus (⭐43k) — Cloud-native vector database ☆
43,295 - pingcap/tidb (⭐40k) — Cloud-native distributed SQL DB ☆
39,864 - cockroachdb/cockroach (⭐32k) — Cloud native distributed SQL database ☆
31,985 - influxdata/influxdb (⭐31k) — Scalable datastore for metrics, events, and real-time analytics ☆
31,344 - dgraph-io/dgraph (⭐22k) — high-performance graph database for real-time use cases ☆
21,618 - dolthub/dolt (⭐21k) — Dolt – Git for Data ☆
21,318 - rqlite/rqlite (⭐17k) — Lightweight distributed SQLite ☆
17,348 - VictoriaMetrics/VictoriaMetrics (⭐16k) — Fast time series database and monitoring ☆
16,514 - dgraph-io/badger (⭐16k) — Fast key-value DB in Go. ☆
15,523 - dicedb/dicedb (⭐11k) — Low-latency key/value engine on Valkey with storage tiers ☆
10,708 - etcd-io/bbolt (⭐9.4k) — An embedded key/value database for Go. ☆
9,406 - codenotary/immudb (⭐8.9k) — Immutable database with SQL ☆
8,939 - cockroachdb/pebble (⭐5.8k) — RocksDB/LevelDB inspired key-value database in Go ☆
5,805 - rosedblabs/rosedb (⭐4.9k) — Fast key/value storage engine ☆
4,877 - tidwall/buntdb (⭐4.8k) — Embeddable in-memory key/value DB ☆
4,842 - nalgeon/redka (⭐4.5k) — Redis re-implemented with SQL ☆
4,533 - HDT3213/godis (⭐3.8k) — A Golang implemented Redis Server and Cluster ☆
3,827 - nutsdb/nutsdb (⭐3.6k) — Simple embeddable key/value store ☆
3,563 - lindb/lindb (⭐3.1k) — Scalable time-series database ☆
3,061 - lotusdblabs/lotusdb (⭐2.3k) — Key-value database with LSM and B+ tree ☆
2,254 - kelindar/column (⭐1.5k) — Columnar in-memory store ☆
1,508 - akrylysov/pogreb (⭐1.3k) — Embedded key-value store for read-heavy workloads written in Go ☆
1,349 - objectbox/objectbox-go (⭐1.3k) — Embedded database for Go ☆
1,258 - couchbase/moss (⭐1k) — Simple, fast key-val storage ☆
1,017 - amit-davidson/LibraDB (⭐198) — Simple persistent key/value store ☆
198 - claygod/transaction (⭐139) — Embedded database for accounts transactions. ☆
139 - xgzlucario/rotom (⭐41) — Tiny Redis server in Go ☆
40
Distributed Storage
- seaweedfs/seaweedfs (⭐31k) — Fast distributed storage for blobs ☆
30,925 - juicedata/juicefs (⭐13k) — Distributed POSIX filesystem ☆
13,325
Interfaces to Multiple Backends
- philippgille/gokv (⭐822) — Key-value store abstraction ☆
822 - avito-tech/go-transaction-manager (⭐386) — Transaction manager for Go ☆
386 - viant/dsc (⭐35) — Datastore Connectivity in go ☆
35 - fogfish/dynamo (⭐22) — Generic Golang Key/Value trait for AWS storage services ☆
22
NoSQL Database Drivers
- redis/go-redis (⭐22k) — Redis Go client ☆
21,979 - gomodule/redigo (⭐9.9k) — Go client for Redis ☆
9,880 - mongodb/mongo-go-driver (⭐8.5k) — The Official Golang driver for MongoDB ☆
8,514 - bradfitz/gomemcache (⭐1.9k) — Go Memcached client library #golang ☆
1,866 - qiniu/qmgo (⭐1.3k) — Go driver for MongoDB ☆
1,350 - Kamva/mgm (⭐764) — MongoDB ODM for Go based on official driver ☆
764 - aerospike/aerospike-client-go (⭐458) — Aerospike Client Go ☆
458 - couchbase/gocb (⭐376) — The Couchbase Go SDK ☆
376 - go-kivik/kivik (⭐340) — CouchDB client interface ☆
340 - couchbase/go-couchbase (⭐324) — Couchbase client in Go ☆
324 - chenmingyong0423/go-mongox (⭐217) — MongoDB driver wrapper with generics ☆
217 - aliexpressru/gomemcached (⭐22) — Binary Memcached client with sharding ☆
22 - btnguyen2k/gocosmos (⭐22) — Go database/sql driver for Azure Cosmos DB SQL API ☆
22
ORM
- go-gorm/gorm (⭐40k) — The fantastic ORM library for Golang, aims to be developer friendly ☆
39,646 - ent/ent (⭐17k) — An entity framework for Go ☆
16,972 - aarondl/sqlboiler (⭐7k) — Generate a Go ORM tailored to your database schema. ☆
6,979 - uptrace/bun (⭐4.7k) — SQL-first Golang ORM ☆
4,706 - upper/db (⭐3.6k) — Data access layer for databases ☆
3,647 - huandu/go-sqlbuilder (⭐1.7k) — SQL builder with zero-config ORM ☆
1,678 - stephenafamo/bob (⭐1.7k) — SQL builder with ORM generator ☆
1,662 - go-rel/rel (⭐781) — Modern ORM for Golang ☆
781 - FrancoLiberali/cql (⭐17) — CQL: Compiled Query Language ☆
17 - hashicorp/go-dbw (⭐16) — A simple package that encapsulates database operations. ☆
16
Query Language
- 99designs/gqlgen (⭐11k) — go generate based graphql server library ☆
10,687 - TomWright/dasel (⭐7.9k) — Query and modify data formats ☆
7,881 - graph-gophers/graphql-go (⭐4.7k) — GraphQL server with a focus on ease of use ☆
4,747 - bhmj/jsonslice (⭐92) — json slicer ☆
92 - hashicorp/mql (⭐65) — Model Query Language (mql) is a query language for your database models. ☆
65 - ccbrown/api-fu (⭐57) — A collection of Go packages for creating robust GraphQL APIs ☆
57 - AsaiYusuke/jsonpath (⭐30) — JSONPath query library ☆
30
Relational Database Drivers
- go-sql-driver/mysql (⭐15k) — MySQL driver for database/sql ☆
15,384 - jackc/pgx (⭐14k) — PostgreSQL driver and toolkit for Go ☆
13,506 - denisenkom/go-mssqldb (⭐1.9k) — Microsoft SQL server driver written in go language ☆
1,880 - ncruces/go-sqlite3 (⭐926) — Go bindings to SQLite using wazero ☆
933 - godror/godror (⭐588) — GO DRiver for ORacle DB ☆
588 - cvilsmeier/sqinn-go (⭐513) — Golang SQLite without cgo ☆
513 - VinGarcia/ksql (⭐355) — A Simple and Powerful Golang SQL Library ☆
355 - surrealdb/surrealdb.go (⭐307) — SurrealDB SDK for Golang ☆
307 - nakagami/firebirdsql (⭐256) — Firebird RDBMS sql driver for Go (golang) ☆
256 - ydb-platform/ydb-go-sdk (⭐176) — Pure Go native and database/sql driver for YDB ☆
177 - rqlite/gorqlite (⭐179) — A Go client for rqlite, the distributed database built on SQLite ☆
179 - apache/calcite-avatica-go (⭐124) — Apache Calcite Go ☆
124 - viant/bgc (⭐21) — Datastore Connectivity for BigQuery in go ☆
21
SQL Query Builders
- sqlc-dev/sqlc (⭐17k) — Generate type-safe code from SQL ☆
17,144 - Masterminds/squirrel (⭐7.9k) — Fluent SQL generation for golang ☆
7,885 - xo/dbtpl (⭐3.9k) — Generate Go code for databases ☆
3,888 - go-jet/jet (⭐3.6k) — Type-safe SQL builder with codegen ☆
3,595 - doug-martin/goqu (⭐2.6k) — SQL builder and query library for golang ☆
2,641 - didi/gendry (⭐1.6k) — a golang library for sql builder ☆
1,638 - lqs/sqlingo (⭐449) — A lightweight DSL & ORM which helps you to write SQL in Go. ☆
450 - nullism/bqb (⭐187) — Lightweight query builder ☆
187 - arthurkushman/buildsqlx (⭐185) — Go database query builder library for PostgreSQL ☆
185 - galeone/igor (⭐126) — igor is an abstraction layer for PostgreSQL with a gorm like syntax. ☆
126 - cristalhq/builq (⭐97) — Easily build SQL queries in Go. ☆
97 - JiveGroup/FluentSQL (⭐18) — Fluent SQL - flexible and powerful SQL string builder ☆
18
Search and Analytic Databases
- elastic/go-elasticsearch (⭐6k) — The official Go client for Elasticsearch ☆
6,037 - ClickHouse/clickhouse-go (⭐3.3k) — Golang driver for ClickHouse ☆
3,256 - sourcegraph/zoekt (⭐1.4k) — Fast trigram-based code search ☆
1,461 - sdqri/effdsl (⭐34) — Elasticsearch query builder for golang ☆
34
DevOps & Build
Backup
- restic/restic (⭐33k) — Fast, secure backup program ☆
32,687 - gilbertchen/duplicacy (⭐5.6k) — Cloud backup tool ☆
5,631
Build Automation
- air-verse/air (⭐23k) — Live reload for Go apps ☆
23,148 - go-task/task (⭐15k) — Fast cross-platform build tool inspired by Make ☆
15,105 - joerdav/xc (⭐1.4k) — Markdown defined task runner. ☆
1,373 - goyek/goyek (⭐680) — Task automation Go library ☆
682 - flowexec/flow (⭐132) — Local developer automation platform that flows with you ☆
132
CI/CD
- harness/harness (⭐34k) — End-to-end developer platform ☆
33,899 - woodpecker-ci/woodpecker (⭐6.6k) — Simple, powerful CI/CD engine ☆
6,631 - ovh/cds (⭐4.8k) — Enterprise CI/CD platform ☆
4,804 - raviqqe/muffet (⭐2.6k) — Fast website link checker ☆
2,592 - pipe-cd/pipecd (⭐1.3k) — The One CD for All {applications, platforms, operations} ☆
1,261 - jenkins-zh/jenkins-cli (⭐410) — Jenkins CLI allows you to manage your Jenkins in an easy way ☆
411 - vladopajic/go-test-coverage (⭐224) — Report test coverage threshold issues ☆
224 - appleboy/drone-scp (⭐167) — Copy files via SSH for Drone ☆
167 - nikogura/gomason (⭐66) — A tool for testing, building, signing, and publishing binaries. ☆
66 - appleboy/drone-jenkins (⭐41) — Drone plugin for trigger Jenkins jobs. ☆
41 - opnlabs/dot (⭐34) — Minimal CI using Docker ☆
34 - gha-common/go-beautiful-html-coverage (⭐21) — GitHub Action for code coverage reports ☆
21
Containers
- moby/moby (⭐72k) — Container ecosystem components ☆
71,524 - traefik/traefik (⭐62k) — The Cloud Native Application Proxy ☆
62,163 - ko-build/ko (⭐8.4k) — Build and deploy Go applications ☆
8,368 - s0rg/decompose (⭐126) — Reverse-engineering tool for docker environments ☆
126 - x1unix/docker-go-mingw (⭐53) — Docker for Go with MinGW toolchain ☆
53
DevOps Utilities
- go-gitea/gitea (⭐54k) — Self-hosted Git service ☆
54,295 - moovweb/gvm (⭐12k) — Go Version Manager ☆
11,562 - TwiN/gatus (⭐10k) — Developer-oriented status page with alerting ☆
10,397 - bitfield/script (⭐6.9k) — Making it easy to write shell-like scripts in Go ☆
6,944 - fleetdm/fleet (⭐6.1k) — Open device management ☆
6,140 - taubyte/tau (⭐5k) — Fullstack Workspace for Humans & Machines ☆
4,983 - megaease/easeprobe (⭐2.3k) — Service health monitoring tool ☆
2,302 - ajvb/kala (⭐2.2k) — Modern Job Scheduler ☆
2,162 - gabrie30/ghorg (⭐2k) — Clone entire GitHub orgs ☆
1,991 - sanbornm/go-selfupdate (⭐1.7k) — Enable your Go applications to self update ☆
1,680 - yusufcanb/tlm (⭐1.5k) — Local CLI Copilot, powered by Ollama. ☆
1,473 - ovh/utask (⭐1.4k) — Automation engine with YAML config ☆
1,365 - TimothyYe/skm (⭐1k) — A simple and powerful SSH keys manager ☆
1,009 - scaleway/scaleway-cli (⭐959) — Command Line Interface for Scaleway ☆
960 - alexliesenfeld/health (⭐830) — A simple and flexible health check library for Go. ☆
830 - kool-dev/kool (⭐713) — Dev to cloud web apps made easy ☆
714 - kevincobain2000/gobrew (⭐412) — Go version manager without root ☆
412 - appleboy/easyssh-proxy (⭐347) — Simple SSH protocol implementation ☆
347 - xitonix/trubka (⭐337) — A CLI tool for Kafka ☆
337 - emicklei/mora (⭐315) — MongoDB generic REST server in Go ☆
315 - thevxn/dish (⭐275) — A simple, remotely configurable monitoring service. ☆
275 - jkaninda/goma-gateway (⭐175) — Lightweight API gateway and proxy ☆
176 - datarootsio/tf-profile (⭐164) — Profile Terraform runs ☆
164 - kazhuravlev/healthcheck (⭐21) — Readiness probes for Kubernetes application ☆
21
Infrastructure
- hashicorp/packer (⭐16k) — Build machine images from config ☆
15,623 - pomerium/pomerium (⭐4.7k) — Pomerium is an identity and context-aware access proxy. ☆
4,712 - peak/s5cmd (⭐3.9k) — Parallel S3 and local filesystem execution tool. ☆
3,959 - aptly-dev/aptly (⭐2.8k) — aptly - Debian repository management tool ☆
2,787 - KusionStack/kusion (⭐1.3k) — Declarative platform orchestrator ☆
1,281 - oxyno-zeta/s3-proxy (⭐442) — S3 reverse proxy with auth ☆
444
Kubernetes
- kubernetes/kubernetes (⭐121k) — Production-Grade Container Scheduling and Management ☆
121,127 - k3s-io/k3s (⭐32k) — Lightweight Kubernetes ☆
32,435 - kubernetes/minikube (⭐32k) — Run Kubernetes locally ☆
31,588 - kubernetes-sigs/kind (⭐15k) — Kubernetes IN Docker - local clusters for testing Kubernetes ☆
15,091 - kubeshark/kubeshark (⭐12k) — API traffic analyzer for Kubernetes ☆
11,822 - flannel-io/flannel (⭐9.4k) — Network fabric for containers ☆
9,409 - getanteon/anteon (⭐8.5k) — eBPF Kubernetes monitoring tool ☆
8,542 - kubevela/kubevela (⭐7.7k) — The Modern Application Platform. ☆
7,705 - k3d-io/k3d (⭐6.3k) — Little helper to run CNCF's k3s in Docker ☆
6,314 - stefanprodan/podinfo (⭐5.8k) — Go microservice template for Kubernetes ☆
5,852 - apecloud/kubeblocks (⭐3k) — Kubernetes operator for databases ☆
2,995 - kubenetworks/kubevpn (⭐1.3k) — Connect to Kubernetes cluster network ☆
1,304 - abahmed/kwatch (⭐1k) — monitor & detect crashes in your Kubernetes(K8s) cluster instantly ☆
1,000 - getanteon/alaz (⭐718) — eBPF agent for K8s observability ☆
718
Load Testing
- grafana/k6 (⭐30k) — A modern load testing tool, using Go and JavaScript ☆
30,125 - tsenart/vegeta (⭐25k) — HTTP load testing tool and library. It's over 9000! ☆
24,958 - codesenberg/bombardier (⭐6.7k) — Fast cross-platform HTTP benchmarking tool written in Go ☆
6,750 - rogerwelin/cassowary (⭐808) — Modern cross-platform HTTP load-testing tool written in Go ☆
808
- axllent/mailpit (⭐8.9k) — An email and SMTP testing tool with API for developers ☆
8,944 - foxcpp/maddy (⭐5.9k) — Composable all-in-one mail server. ☆
5,890 - mjl-/mox (⭐5.6k) — Modern secure mail server ☆
5,569 - matcornic/hermes (⭐3k) — Clean HTML email generator ☆
3,033 - AfterShip/email-verifier (⭐1.5k) — Email verification without sending emails ☆
1,530 - wneessen/go-mail (⭐1.3k) — Easy to use, yet comprehensive library for sending mails with Go ☆
1,296 - sendgrid/sendgrid-go (⭐1.1k) — The Official Twilio SendGrid Golang API Library ☆
1,051 - mailgun/mailgun-go (⭐744) — Go library for the Mailgun API. ☆
745 - xhit/go-simple-mail (⭐693) — Simple mail sending with TLS/SSL ☆
693 - emersion/go-message (⭐441) — Internet Message Format library ☆
441 - vanng822/go-premailer (⭐193) — Inline CSS for HTML mail ☆
194 - truemail-rb/truemail-go (⭐130) — Email validator via Regex, DNS, SMTP ☆
130 - toorop/go-dkim (⭐99) — DKIM package for golang ☆
99 - dimuska139/go-email-normalizer (⭐77) — Normalize email addresses ☆
78 - valord577/mailx (⭐20) — A library that makes it easier to send email via SMTP. ☆
21
Finance & Blockchain
Blockchain
- ethereum/go-ethereum (⭐51k) — Go implementation of the Ethereum protocol ☆
50,918 - ipfs/kubo (⭐17k) — An IPFS implementation in Go ☆
16,956 - lightningnetwork/lnd (⭐8.1k) — Lightning Network Daemon ☆
8,118 - cosmos/cosmos-sdk (⭐6.9k) — A Framework for Building High Value Public Blockchains ☆
6,949 - gagliardetto/solana-go (⭐1.5k) — Go SDK library and RPC client for the Solana Blockchain ☆
1,518 - gnolang/gno (⭐1.1k) — Interpreted Go virtual machine ☆
1,058 - cometbft/cometbft (⭐868) — Byzantine fault-tolerant consensus ☆
869 - ChainSafe/gossamer (⭐455) — Go Implementation of the Polkadot Host ☆
455
Financial
- shopspring/decimal (⭐7.3k) — Arbitrary-precision fixed-point decimal numbers in Go ☆
7,268 - achannarasappa/ticker (⭐6k) — Terminal stock and crypto tracker ☆
5,983 - Rhymond/go-money (⭐1.9k) — Go implementation of Fowler's Money pattern ☆
1,881 - c9s/bbgo (⭐1.6k) — The modern cryptocurrency trading bot framework written in Go. ☆
1,609 - formancehq/ledger (⭐1.2k) — The programmable open source core ledger for fintech ☆
1,171 - bojanz/currency (⭐627) — Currency handling for Go. ☆
629 - moov-io/ach (⭐533) — ACH file reader, writer, validator ☆
534 - invopop/gobl (⭐259) — Go Business Language ☆
261 - govalues/decimal (⭐224) — Correctly rounded decimals for Go ☆
226 - quagmt/udecimal (⭐176) — High-precision decimal library ☆
176 - jovandeginste/payme (⭐90) — QR code generator (ASCII & PNG) for SEPA payments ☆
91 - jokruger/dec128 (⭐42) — High performance 128-bit fixed-point decimal numbers in go. ☆
43 - govalues/money (⭐49) — Correctly rounded monetary amounts and exchange rates for Go ☆
49 - nikolaydubina/fpmoney (⭐35) — Fixed-Point Decimal Money ☆
35 - nikolaydubina/fpdecimal (⭐34) — Fixed-Point Decimals ☆
34
Payment APIs
- stripe/stripe-go (⭐2.5k) — Stripe API library for Go ☆
2,545 - plutov/paypal (⭐775) — Golang client for PayPal REST API ☆
776 - brunomvsouza/ynab.go (⭐79) — Client for YNAB API ☆
79
GUI & Desktop
GUI
- fyne-io/fyne (⭐28k) — Cross platform GUI toolkit in Go inspired by Material Design ☆
28,021 - webview/webview (⭐14k) — Tiny webview library for Go ☆
13,943 - go-vgo/robotgo (⭐11k) — Cross-platform RPA and GUI automation ☆
10,653 - maxence-charriere/go-app (⭐8.9k) — Build progressive web apps with Go and WASM ☆
8,869 - progrium/darwinkit (⭐5.4k) — Native Mac APIs for Go. Previously known as MacDriver ☆
5,404 - getlantern/systray (⭐3.7k) — Cross-platform systray library ☆
3,676 - cogentcore/core (⭐2.3k) — Powerful GUI framework for Go ☆
2,309 - gotk3/gotk3 (⭐2.2k) — Go bindings for GTK3 ☆
2,204 - roblillack/spot (⭐1.3k) — React-like desktop GUI toolkit for Go ☆
1,258 - ncruces/zenity (⭐894) — Zenity dialogs for Golang, Windows, macOS ☆
895 - energye/energy (⭐578) — CEF-based GUI framework ☆
578 - AllenDang/cimgui-go (⭐505) — Auto generated Go wrapper for Dear ImGui via cimgui ☆
505 - richardwilkes/unison (⭐319) — Unified GUI toolkit for Go ☆
319
Windows
- go-ole/go-ole (⭐1.3k) — win32 ole implementation for golang ☆
1,296 - gonutz/d3d9 (⭐163) — Direct3D9 wrapper for Go. ☆
163
Game Development
Game Engines
- hajimehoshi/ebiten (⭐13k) — A dead simple 2D game engine for Go ☆
13,023 - fogleman/nes (⭐5.6k) — NES emulator written in Go. ☆
5,642 - topfreegames/pitaya (⭐2.7k) — Game server with clustering support ☆
2,749 - xiaonanln/goworld (⭐2.7k) — Distributed game server engine ☆
2,707 - gen2brain/raylib-go (⭐2.4k) — Go bindings for raylib ☆
2,385 - oakmound/oak (⭐1.7k) — A pure Go game engine ☆
1,656 - JoelOtter/termloop (⭐1.5k) — Terminal-based game engine for Go, built on top of Termbox ☆
1,472 - gopxl/pixel (⭐383) — A hand-crafted 2D game library in Go. ☆
385 - ungerik/go3d (⭐338) — A performance oriented 2D/3D math package for Go ☆
338 - mlange-42/ark (⭐225) — Ark -- Archetype-based Entity Component System (ECS) for Go. ☆
227 - kelindar/tile (⭐212) — 2D grid engine for games ☆
213 - andygeiss/ecs (⭐171) — Entity Component System for games ☆
171 - gonutz/prototype (⭐107) — 2D game prototyping framework ☆
107 - s0rg/fantasyname (⭐40) — RinkWorks fantasy name generator for golang ☆
40 - s0rg/grid (⭐25) — Generic 2D grid ☆
25
OpenGL
- go-gl/glfw (⭐1.7k) — Go bindings for GLFW 3 ☆
1,668 - go-gl/gl (⭐1.2k) — Go bindings for OpenGL (generated via glow) ☆
1,192 - go-gl/mathgl (⭐599) — A pure Go 3D math library. ☆
599
Geospatial
- tidwall/tile38 (⭐9.6k) — Real-time Geospatial and Geofencing ☆
9,600 - golang/geo (⭐1.8k) — S2 geometry library in Go ☆
1,824 - consbio/mbtileserver (⭐775) — MBTiles server in Go ☆
778 - spatial-go/geoos (⭐532) — Spatial data and geometric algorithms ☆
532 - paulmach/osm (⭐446) — OpenStreetMap data library ☆
447 - uber/h3-go (⭐410) — H3 hexagonal geospatial indexing ☆
410 - airbusgeo/godal (⭐174) — GDAL wrapper for Go ☆
174 - peterstace/simplefeatures (⭐169) — OpenGIS Simple Feature implementation ☆
170 - wroge/wgs84 (⭐140) — Zero-dep coordinate transformations ☆
140 - pantrif/s2-geojson (⭐37) — Visualize S2 cells on a map ☆
37
Go Tooling
Compilers
- gopherjs/gopherjs (⭐13k) — A compiler from Go to JavaScript for running Go code in a browser ☆
13,132 - yassinebenaid/bunster (⭐2.6k) — Compile shell scripts to static binaries. ☆
2,650 - Konstantin8105/c4go (⭐379) — Transpiling C code to Go code ☆
379 - go2hx/go2hx (⭐150) — Import Go libraries in Haxe ☆
150
Editor Plugins
- fatih/vim-go (⭐16k) — Go development plugin for Vim ☆
16,238 - visualfc/liteide (⭐7.8k) — LiteIDE is a simple, open source, cross-platform Go IDE. ☆
7,759 - nsf/gocode (⭐5k) — An autocompletion daemon for the Go programming language ☆
4,999 - golang/vscode-go (⭐4.2k) — Go extension for Visual Studio Code ☆
4,216 - dominikh/go-mode.el (⭐1.4k) — Emacs mode for the Go programming language ☆
1,450 - incu6us/goimports-reviser (⭐715) — Imports sorting and code formatting tool ☆
715
Generate Tools
- xuri/xgen (⭐406) — XSD parser and code generator ☆
406 - kazhuravlev/options-gen (⭐103) — Codegen for functional options in go projects ☆
103 - g4s8/envdoc (⭐94) — Go tool to generate documentation for environment variables ☆
94
Go Tools
- go-swagger/go-swagger (⭐10k) — Swagger 2.0 implementation for go ☆
9,958 - ondrajz/go-callvis (⭐6.5k) — Visualize call graph of a Go program using Graphviz ☆
6,459 - Zxilly/go-size-analyzer (⭐2.1k) — Analyze compiled Go binary size ☆
2,090 - pointlander/peg (⭐1.1k) — PEG parser generator for Go ☆
1,101 - janpfeifer/gonb (⭐995) — Go notebook kernel for Jupyter ☆
996 - safedep/vet (⭐968) — Protect against malicious open source packages ☆
974 - alajmo/sake (⭐743) — Task runner for local and remote hosts ☆
743 - goccmack/gocc (⭐658) — Parser and scanner generator ☆
658 - moshebe/gebug (⭐634) — Debug Dockerized Go apps ☆
634 - iyashjayesh/monigo (⭐404) — Performance monitoring library ☆
404 - edwingeng/hotswap (⭐422) — Hot reload Go code without restart ☆
422 - becheran/roumon (⭐234) — Universal goroutine monitor using pprof and termui ☆
234 - bitfield/gotestdox (⭐194) — A tool for formatting Go test results as readable documentation ☆
194 - ahmedakef/gotutor (⭐75) — Online Go Debugger & Visualizer ☆
75 - bobg/decouple (⭐35) — find overspecified function parameters in Go code ☆
35 - bobg/modver (⭐21) — a tool that helps you obey semantic versioning rules in your Go module ☆
21 - dustinblackman/gomodrun (⭐38) — Run binaries from go.mod ☆
38
Hardware & IoT
Hardware
- shirou/gopsutil (⭐12k) — psutil for golang ☆
11,739 - arduino/arduino-cli (⭐4.8k) — Arduino command line tool ☆
4,828 - jaypipes/ghw (⭐1.8k) — Go HardWare discovery/inspection library ☆
1,828 - zcalusic/sysinfo (⭐575) — Linux system information library ☆
576
IoT
- hybridgroup/gobot (⭐9.4k) — Robotics and IoT framework ☆
9,384 - lf-edge/ekuiper (⭐1.7k) — Lightweight data stream processing engine for IoT edge ☆
1,683 - rulego/rulego (⭐1.4k) — Lightweight rule engine framework ☆
1,435 - Edgenesis/shifu (⭐1.4k) — Kubernetes-native IoT gateway ☆
1,407 - e154/smart-home (⭐96) — software package for automation ☆
97 - maxatome/go-vitotrol (⭐23) — golang client library to Viessmann Vitotrol web service ☆
23
Networking
Consensus
- hashicorp/raft (⭐8.9k) — Golang implementation of the Raft consensus protocol ☆
8,953 - lni/dragonboat (⭐5.3k) — Multi-group Raft consensus library ☆
5,298 - etcd-io/raft (⭐993) — Raft library for maintaining a replicated state machine ☆
994 - vadiminshakov/committer (⭐40) — 2PC and 3PC protocols for Go ☆
41
DNS
- miekg/dns (⭐8.6k) — DNS library in Go ☆
8,650 - 0xERR0R/blocky (⭐6.2k) — DNS ad-blocker for local networks ☆
6,192 - hashicorp/mdns (⭐1.3k) — Simple mDNS client/server library in Golang ☆
1,346 - semihalev/sdns (⭐1k) — High-performance recursive DNS ☆
1,032 - FenkoHQ/dnsmonster (⭐352) — Passive DNS Capture and Monitoring Toolkit ☆
352 - joeig/go-powerdns (⭐103) — PowerDNS API client for Go (community project) ☆
103
Distributed Utilities
- luraproject/lura (⭐6.7k) — Ultra-performant API gateway ☆
6,748 - chrislusf/gleam (⭐3.6k) — Distributed map/reduce in Go ☆
3,557 - bsm/redislock (⭐1.7k) — Simplified distributed locking implementation using Redis ☆
1,742 - k8gb-io/k8gb (⭐1.2k) — A cloud native Kubernetes Global Balancer ☆
1,151 - temporalio/sdk-go (⭐841) — Temporal Go SDK ☆
843 - AppsFlyer/go-sundheit (⭐560) — Health checks library for Go ☆
560 - tarmac-project/tarmac (⭐342) — Functions as Monolith or Microservices ☆
342 - italolelis/outboxer (⭐166) — A library that implements the outboxer pattern in go ☆
166 - capillariesio/capillaries (⭐68) — Distributed batch data processing framework ☆
68 - svcavallar/celeriac.v1 (⭐76) — Celery client for Go ☆
76 - sanketplus/go-mysql-lock (⭐66) — MySQL Backed Locking Primitive ☆
66 - pdupub/go-pdu (⭐49) — An PDU implementation in Go ☆
49 - mbrostami/consistenthash (⭐32) — Consistent hashing implementation ☆
32
HTTP & Proxy
- valyala/fasthttp (⭐23k) — Fast HTTP package for Go ☆
23,293 - elazarl/goproxy (⭐6.6k) — An HTTP proxy library for Go ☆
6,624 - wzshiming/httpproxy (⭐31) — HTTP proxy handler and dialer ☆
31
HTTP Clients
- go-resty/resty (⭐12k) — Simple HTTP, REST, and SSE client library for Go ☆
11,586 - imroc/req (⭐4.8k) — Simple Go HTTP client with Black Magic ☆
4,771 - gojek/heimdall (⭐2.7k) — An enhanced HTTP client for Go ☆
2,704 - hashicorp/go-retryablehttp (⭐2.3k) — Retryable HTTP client in Go ☆
2,280 - levigross/grequests (⭐2.2k) — A Go "clone" of the great and famous Requests library ☆
2,183 - dghubble/sling (⭐1.7k) — A Go HTTP client library for creating and sending API requests ☆
1,716 - earthboundkid/requests (⭐1.7k) — HTTP requests for Gophers ☆
1,670 - bogdanfinn/tls-client (⭐1.5k) — HTTP client with TLS fingerprint spoofing ☆
1,504 - Noooste/azuretls-client (⭐434) — HTTP client to spoof TLS/JA3 fingerprint ☆
436 - monaco-io/request (⭐295) — go request, go http client ☆
295 - opus-domini/fast-shot (⭐117) — Fluent HTTP client for Go ☆
117 - go-zoox/fetch (⭐89) — Powerful HTTP client for Go ☆
89 - NdoleStudio/go-otelroundtripper (⭐86) — OpenTelemetry metrics for HTTP clients ☆
86 - rezmoss/axios4go (⭐32) — Axios-inspired HTTP client ☆
33
Servers
- caddyserver/caddy (⭐71k) — Multi-platform web server with HTTPS ☆
70,802 - pocketbase/pocketbase (⭐57k) — Open Source realtime backend in 1 file ☆
56,746 - etcd-io/etcd (⭐52k) — Distributed key-value store ☆
51,612 - drakkan/sftpgo (⭐12k) — Full-featured SFTP/FTP/HTTP server ☆
11,771 - adnanh/webhook (⭐12k) — Lightweight webhook server ☆
11,665 - roadrunner-server/roadrunner (⭐8.4k) — High-performance PHP application server ☆
8,417 - easegress-io/easegress (⭐5.9k) — A Cloud Native traffic orchestration system ☆
5,871 - charmbracelet/wish (⭐5k) — Make SSH apps, just like that! ☆
5,033 - flipt-io/flipt (⭐4.7k) — Enterprise-ready, Git native feature management solution ☆
4,745 - getfider/fider (⭐4.1k) — Open platform to collect and prioritize feedback ☆
4,153 - xyproto/algernon (⭐3k) — Web server with Lua and Markdown ☆
2,994 - openflagr/flagr (⭐2.6k) — Feature flagging and A/B testing ☆
2,578 - thomaspoignant/go-feature-flag (⭐2k) — Open source feature flag solution ☆
1,962 - msoap/shell2http (⭐1.5k) — Executing shell commands via HTTP server ☆
1,475 - openrundev/openrun (⭐811) — Open source Cloud Run alternative ☆
812 - webhookx-io/webhookx (⭐273) — The Next-Generation Webhooks Gateway. ☆
274 - baalimago/wd-41 (⭐151) — Web-Development 41, a static web server with live-reload ☆
151 - blind-oracle/cortex-tenant (⭐133) — Prometheus proxy with tenant ID injection ☆
133 - rekby/lets-proxy2 (⭐101) — Reverse proxy with auto TLS ☆
102 - 42atomys/webhooked (⭐42) — A webhook receiver on steroids. ☆
42
Network Utilities
- fortio/fortio (⭐3.7k) — Load testing and echo server ☆
3,683 - hashicorp/go-getter (⭐1.8k) — Download files from URLs ☆
1,811 - TimothyYe/godns (⭐1.7k) — Dynamic DNS client for multiple providers ☆
1,742 - cavaliergopher/grab (⭐1.5k) — Download manager package ☆
1,475 - schollz/peerdiscovery (⭐668) — Cross-platform local peer discovery ☆
668 - fclairamb/ftpserverlib (⭐464) — FTP server library for Go ☆
464 - skibish/ddns (⭐267) — Personal DDNS client with Digital Ocean Networking DNS as backend. ☆
268 - assafmo/joincap (⭐221) — Merge pcap files ☆
221 - c-robinson/iplib (⭐151) — A library for working with IP addresses and networks in Go ☆
151 - gaissmai/bart (⭐121) — Balanced routing table ☆
123 - alegrey91/fwdctl (⭐72) — Manage IPTables forwards via CLI ☆
72
P2P & Torrent
- anacrolix/torrent (⭐6k) — Full-featured BitTorrent client package and utilities ☆
5,989 - dragonflyoss/dragonfly (⭐3.1k) — P2P-based container image distribution ☆
3,082 - cenkalti/rain (⭐1.1k) — BitTorrent client and library in Go ☆
1,113 - anacrolix/dht (⭐349) — DHT for BitTorrent ☆
349
Protocols
- pion/webrtc (⭐16k) — Pure Go implementation of the WebRTC API ☆
16,128 - quic-go/quic-go (⭐11k) — A production-ready QUIC implementation in pure Go ☆
11,481 - google/gopacket (⭐6.8k) — Provides packet processing capabilities for Go ☆
6,756 - osrg/gobgp (⭐4k) — BGP implemented in the Go Programming Language ☆
3,995 - lxzan/gws (⭐1.7k) — Fast websocket server and client ☆
1,729 - gosnmp/gosnmp (⭐1.2k) — An SNMP library written in Go ☆
1,242 - bluenviron/gortsplib (⭐897) — RTSP client and server library for the Go programming language ☆
897 - ccding/go-stun (⭐719) — A go implementation of the STUN client (RFC 3489 and RFC 5389) ☆
719 - google/gnxi (⭐282) — gNXI Tools - gRPC Network Management/Operations Interface Tools ☆
282 - jeroenrinzema/psql-wire (⭐219) — PostgreSQL wire protocol for Go ☆
222 - jimlambrt/gldap (⭐120) — Build LDAP services w/ Go ☆
120 - soypat/natiu-mqtt (⭐104) — Extensible MQTT for embedded systems ☆
104
RPC
- grpc/grpc-go (⭐23k) — The Go language implementation of gRPC. HTTP/2 based RPC ☆
22,830 - lesismal/arpc (⭐1.1k) — Two-way RPC with broadcast support ☆
1,091 - ybbus/jsonrpc (⭐369) — A simple go implementation of json rpc 2.0 client over http ☆
370 - osamingo/jsonrpc (⭐193) — The jsonrpc package helps implement of JSON-RPC 2.0 ☆
193
SSH & SFTP
- gliderlabs/ssh (⭐4.1k) — Easy SSH servers in Golang ☆
4,108 - pkg/sftp (⭐1.6k) — SFTP support for the go.crypto/ssh package ☆
1,632 - masterzen/winrm (⭐462) — Windows remote command library ☆
462
TCP/UDP Frameworks
- panjf2000/gnet (⭐11k) — High-performance event-loop network ☆
11,110 - xtaci/kcp-go (⭐4.5k) — A crypto-secure Reliable-UDP library for Golang with FEC support. ☆
4,498 - cloudwego/netpoll (⭐4.5k) — High-performance I/O framework ☆
4,541 - lesismal/nbio (⭐2.7k) — High-performance network library ☆
2,708 - xtaci/gaio (⭐1.1k) — High-performance, minimalist async-io (proactor) networking for Golang. ☆
1,106 - cheng-zhongliang/event (⭐119) — Simple I/O event notification library wirtten in Golang ☆
119 - fish-tennis/gnet (⭐27) — high performance net library for game server ☆
27
VPN & Tunneling
- cloudflare/cloudflared (⭐14k) — Cloudflare Tunnel client ☆
13,470 - xjasonlyu/tun2socks (⭐5k) — TUN to SOCKS proxy ☆
4,971 - songgao/water (⭐2.1k) — A simple TUN/TAP library written in native Go. ☆
2,142 - NodePassProject/nodepass (⭐2.1k) — Secure TCP/UDP tunneling with TLS ☆
2,083
Queues & Pub/Sub
Brokers
- nats-io/nats-server (⭐19k) — High-performance NATS message server ☆
19,341 - emitter-io/emitter (⭐4k) — High-performance pub/sub broker ☆
4,003 - mochi-mqtt/server (⭐1.8k) — Embeddable MQTT v5 broker ☆
1,813
Clients & Libraries
- hibiken/asynq (⭐13k) — Simple, reliable, and efficient distributed task queue in Go ☆
13,016 - IBM/sarama (⭐12k) — Sarama is a Go library for Apache Kafka. ☆
12,445 - centrifugal/centrifugo (⭐10k) — Scalable real-time messaging server ☆
10,064 - ThreeDotsLabs/watermill (⭐9.6k) — Building event-driven applications the easy way in Go. ☆
9,590 - appleboy/gorush (⭐8.7k) — A push notification server written in Go (Golang). ☆
8,698 - RichardKnop/machinery (⭐8k) — Async task queue with message passing ☆
7,951 - nats-io/nats.go (⭐6.5k) — Golang client for NATS, the cloud native messaging system. ☆
6,492 - dunglas/mercure (⭐5.2k) — Server-Sent Events hub ☆
5,208 - confluentinc/confluent-kafka-go (⭐5.1k) — Confluent's Apache Kafka Golang client ☆
5,111 - olahol/melody (⭐4.1k) — Minimalist websocket framework for Go ☆
4,070 - sideshow/apns2 (⭐3.2k) — Apple Push Notification Service ☆
3,165 - lovoo/goka (⭐2.5k) — Kafka stream processing library ☆
2,511 - rabbitmq/amqp091-go (⭐2k) — An AMQP 0-9-1 Go client maintained by the RabbitMQ team ☆
1,975 - asaskevich/EventBus (⭐2k) — [Go] Lightweight eventbus with async compatibility for Go ☆
1,966 - containrrr/shoutrrr (⭐1.5k) — Notification library for gophers and their furry friends. ☆
1,536 - pebbe/zmq4 (⭐1.2k) — A Go interface to ZeroMQ version 4 ☆
1,249 - timbray/quamina (⭐481) — Fast pattern-matching library ☆
481 - cskr/pubsub (⭐448) — A simple pubsub package for go. ☆
449 - jandelgado/rabtap (⭐279) — RabbitMQ wire tap and swiss army knife ☆
279 - mehdihadeli/Go-MediatR (⭐276) — Mediator pattern for CQRS ☆
276 - goptics/varmq (⭐181) — Zero-dep message queue library ☆
182 - oagudo/outbox (⭐119) — Transactional outbox pattern ☆
120 - hyperonym/ratus (⭐124) — RESTful async task queue server ☆
124 - dailymotion/oplog (⭐110) — A generic oplog/replication system for microservices ☆
110 - jirenius/go-res (⭐67) — RES Service protocol library for Go ☆
68 - Protocol-Lattice/GoEventBus (⭐58) — A lock-free, ultra-fast event bus for Go ☆
58 - SchwarzDigits/hypermatch (⭐33) — High-performance rule matching ☆
33
Science
- gonum/gonum (⭐8.3k) — Numeric libraries for Go ☆
8,338 - gonum/plot (⭐2.9k) — Plotting and visualization ☆
2,948 - paulmach/orb (⭐1.1k) — 2D geometry types and utilities ☆
1,101 - madelynnblue/go-dsp (⭐909) — Digital Signal Processing for Go ☆
909 - bebop/poly (⭐720) — Synthetic biology library for Go ☆
720 - hmdsefi/gograph (⭐107) — Generic graph algorithms library ☆
108 - nikolaydubina/jsonl-graph (⭐77) — JSONL Graph Tools ☆
77 - claygod/PiHex (⭐20) — Generate hexadecimal Pi digits ☆
20
Scripting
Embeddable Languages
- php/frankenphp (⭐11k) — The modern PHP app server ☆
10,904 - expr-lang/expr (⭐7.7k) — Expression evaluation for Go ☆
7,726 - yuin/gopher-lua (⭐6.9k) — Lua VM and compiler in Go ☆
6,868 - dop251/goja (⭐6.8k) — ECMAScript engine in pure Go ☆
6,775 - d5/tengo (⭐3.8k) — Fast script language for Go ☆
3,784 - Shopify/go-lua (⭐3.4k) — Lua VM in Go ☆
3,423 - google/cel-go (⭐2.9k) — Common Expression Language for Go ☆
2,898 - google/starlark-go (⭐2.6k) — Starlark config language in Go ☆
2,652 - metacall/core (⭐1.8k) — Polyglot programming runtime ☆
1,776 - wa-lang/wa (⭐1.8k) — The Wa Programming Language ☆
1,755 - mattn/anko (⭐1.6k) — Scriptable interpreter in Go ☆
1,559 - PaesslerAG/gval (⭐810) — Expression evaluation in Go ☆
811 - ichiban/prolog (⭐708) — Prolog scripting engine for Go ☆
713 - aarzilli/golua (⭐691) — Lua C API bindings for Go ☆
691 - 1set/starlet (⭐41) — Starlark wrapper with batteries ☆
42
Code Generators
- oapi-codegen/oapi-codegen (⭐8.2k) — Generate Go code from OpenAPI 3 specs ☆
8,160 - dave/jennifer (⭐3.6k) — Code generator for Go ☆
3,603 - hexdigest/gowrap (⭐1.3k) — Generate interface decorators ☆
1,315 - awalterschulze/goderive (⭐1.3k) — Generate mundane Go functions ☆
1,265 - abice/go-enum (⭐931) — Enum generator for Go ☆
931 - jmattheis/goverter (⭐826) — Generate type-safe converters ☆
829 - rjeczalik/interfaces (⭐432) — Code generation tools for Go ☆
432 - switchupcb/copygen (⭐400) — Copy values between types ☆
400 - reedom/convergen (⭐48) — Type-to-type copy code generator ☆
49
Security
Certificates
- go-acme/lego (⭐9.3k) — Let's Encrypt/ACME client and library written in Go ☆
9,319 - caddyserver/certmagic (⭐5.5k) — Automatic HTTPS certificate management ☆
5,473 - tg123/go-htpasswd (⭐47) — Apache htpasswd Parser for Go. ☆
47 - adrianosela/sslmgr (⭐31) — SSL certificate abstraction ☆
31
Cryptography
- FiloSottile/age (⭐22k) — Simple encryption tool ☆
21,650 - authzed/spicedb (⭐6.5k) — Zanzibar-inspired permissions DB ☆
6,507 - awnumar/memguard (⭐2.7k) — Software sandbox for storage of sensitive information in memory. ☆
2,721 - cossacklabs/themis (⭐2k) — Cryptographic framework for data protection ☆
1,954 - dromara/dongle (⭐1.1k) — A simple, semantic and developer-friendly crypto package for golang ☆
1,100 - anatol/booster (⭐623) — Fast and secure initramfs generator ☆
622 - kevinburke/nacl (⭐552) — Pure Go implementation of the NaCL set of API's ☆
552 - ssh-vault/ssh-vault (⭐497) — encrypt/decrypt using ssh keys ☆
497 - number571/go-peer (⭐319) — Secure decentralized networking ☆
319 - lingrino/vaku (⭐159) — Extended Vault API and CLI ☆
159 - anatol/luks.go (⭐95) — Pure Golang library to manage LUKS partitions ☆
95 - zitadel/passwap (⭐73) — Unified password hashing ☆
73 - rsjethani/secret (⭐32) — Prevent your secrets from leaking into logs, std* etc. ☆
32 - andskur/argon2-hashing (⭐25) — Argon2 password hashing ☆
25
WAF & Protection
- Ullaakut/cameradar (⭐4.9k) — Cameradar hacks its way into RTSP videosurveillance cameras ☆
4,923 - corazawaf/coraza (⭐3.3k) — ModSecurity-compatible WAF in Go ☆
3,341 - mojocn/base64Captcha (⭐2.4k) — captcha of base64 image string ☆
2,354 - unrolled/secure (⭐2.3k) — HTTP middleware for Go that facilitates some quick security wins. ☆
2,335 - mariocandela/beelzebub (⭐1.9k) — AI-powered honeypot framework ☆
1,897 - cossacklabs/acra (⭐1.5k) — Database security proxy ☆
1,458 - securitybunker/databunker (⭐1.4k) — Secure vault for PII/PHI/KYC records ☆
1,390 - hillu/go-yara (⭐387) — Go bindings for YARA ☆
387 - teler-sh/teler-waf (⭐399) — HTTP middleware for WAF ☆
399 - steambap/captcha (⭐162) — Easy captcha library ☆
162
Zero Trust
- sigstore/cosign (⭐5.7k) — Code signing and transparency for containers and binaries ☆
5,726 - openziti/ziti (⭐3.9k) — Zero trust networking platform ☆
3,911 - spiffe/spire (⭐2.2k) — The SPIFFE Runtime Environment ☆
2,244 - philips-labs/spiffe-vault (⭐99) — Integrates Spiffe and Vault to have secretless authentication ☆
99
Testing & Quality
Benchmarks
- smallnest/go-web-framework-benchmark (⭐2.1k) — Web framework benchmarks ☆
2,139 - alecthomas/go_serialization_benchmarks (⭐1.6k) — Serialization benchmarks for Go ☆
1,625 - SimonWaldherr/golang-benchmarks (⭐142) — Go(lang) benchmarks - (measure the speed of golang) ☆
142 - feyeleanor/gospeed (⭐127) — Go language construct benchmarks ☆
127 - nikolaydubina/go-ml-benchmarks (⭐32) — Benchmarks of machine learning inference for Go ☆
32
Code Analysis
- golangci/golangci-lint (⭐19k) — Fast linters runner for Go ☆
18,664 - boyter/scc (⭐8.1k) — Fast code counter and stats ☆
8,197 - mgechev/revive (⭐5.4k) — Fast, extensible Go linter ☆
5,445 - kisielk/errcheck (⭐2.5k) — errcheck checks that you checked errors. ☆
2,473 - go-critic/go-critic (⭐2k) — The most opinionated Go source code linter for code audit. ☆
2,035 - daveshanley/vacuum (⭐1k) — Fast OpenAPI linter ☆
1,024 - presmihaylov/todocheck (⭐435) — Analyser for TODO comments ☆
435 - mibk/dupl (⭐365) — Code clone detection tool ☆
366 - mdempsky/unconvert (⭐388) — Remove unnecessary type conversions ☆
388 - tomarrell/wrapcheck (⭐360) — Check errors are wrapped ☆
369 - shurcooL/gostatus (⭐245) — Show status of Go repositories ☆
245 - Antonboom/testifylint (⭐163) — Linter for testify usage ☆
163 - Crocmagnon/fatcontext (⭐72) — Detect nested contexts in loops ☆
73 - antham/ghokin (⭐52) — Parallelized Gherkin formatter ☆
52 - asticode/go-astitodo (⭐66) — Parse TODOs in your GO code ☆
66 - sashamelentyev/usestdlibvars (⭐47) — Linter for stdlib variables usage ☆
47 - borovikovd/gomsort (⭐26) — Go msort - linter that sorts methods ☆
26
Mock
- vektra/mockery (⭐7k) — Mock code autogenerator for Go ☆
7,018 - DATA-DOG/go-sqlmock (⭐6.5k) — SQL mock driver for testing ☆
6,531 - brianvoe/gofakeit (⭐5.3k) — Random fake data generator written in go ☆
5,320 - uber-go/mock (⭐3.3k) — GoMock is a mocking framework for the Go programming language. ☆
3,286 - SpectoLabs/hoverfly (⭐2.5k) — API simulation and virtualization ☆
2,469 - matryer/moq (⭐2.2k) — Interface mocking via go generate ☆
2,188 - jarcoal/httpmock (⭐2.1k) — HTTP mocking for Go ☆
2,076 - maxbrunsfeld/counterfeiter (⭐1.1k) — Generate type-safe test doubles ☆
1,123 - gojuno/minimock (⭐747) — Powerful mock generator ☆
747 - DATA-DOG/go-txdb (⭐748) — Transaction-isolated SQL driver ☆
748 - pashagolub/pgxmock (⭐568) — pgx mock driver for testing ☆
570 - xhd2015/xgo (⭐431) — All-in-one Go testing library ☆
431 - seborama/govcr (⭐196) — Record and replay HTTP interactions ☆
196 - mocktools/go-smtp-mock (⭐160) — SMTP mock server for testing ☆
162 - elgohr/go-localstack (⭐85) — Go wrapper for LocalStack ☆
85
Performance
- jaegertracing/jaeger (⭐23k) — Distributed tracing platform ☆
22,574 - pixie-io/pixie (⭐6.4k) — Kubernetes-native observability ☆
6,376 - arl/statsviz (⭐3.6k) — Visualize Go runtime metrics ☆
3,627 - nikolaydubina/go-instrument (⭐291) — Add trace spans to Go functions ☆
292 - joetifa2003/mm-go (⭐193) — Manual memory management for Go ☆
193
Browser Automation
- chromedp/chromedp (⭐13k) — Chrome DevTools Protocol driver ☆
12,818 - go-rod/rod (⭐6.8k) — Chrome DevTools driver for scraping ☆
6,800 - sensepost/gowitness (⭐4.2k) — Web screenshot utility with Chrome ☆
4,188 - playwright-community/playwright-go (⭐3.2k) — Browser automation for Chromium, Firefox, WebKit ☆
3,253 - mafredri/cdp (⭐784) — Chrome DevTools Protocol bindings ☆
787
Testing Frameworks
- stretchr/testify (⭐26k) — Assertions and mocks for testing ☆
25,885 - keploy/keploy (⭐16k) — API testing with auto mocks ☆
16,293 - Shopify/toxiproxy (⭐12k) — TCP proxy for chaos testing ☆
11,893 - testcontainers/testcontainers-go (⭐4.7k) — Docker containers for integration tests ☆
4,722 - google/go-cmp (⭐4.6k) — Package for comparing Go values in tests ☆
4,609 - gavv/httpexpect (⭐2.7k) — End-to-end HTTP and REST API testing for Go. ☆
2,715 - cucumber/godog (⭐2.6k) — Cucumber for golang ☆
2,597 - orlangure/gnomock (⭐1.5k) — Test with ephemeral Docker containers ☆
1,482 - dnaeon/go-vcr (⭐1.4k) — Record and replay HTTP for tests ☆
1,364 - go-testfixtures/testfixtures (⭐1.2k) — Rails-like test fixtures for Go ☆
1,220 - fergusstrange/embedded-postgres (⭐1.1k) — Embedded PostgreSQL for testing ☆
1,151 - chapar-rest/chapar (⭐693) — API testing for HTTP and gRPC ☆
693 - gotestyourself/gotest.tools (⭐577) — Testing utilities for Go ☆
577 - maxatome/go-testdeep (⭐463) — Flexible deep comparison in tests ☆
463 - appleboy/gofight (⭐445) — Testing API Handler written in Golang. ☆
445 - viant/endly (⭐266) — End to end functional test and automation framework ☆
266 - ysmood/got (⭐269) — An enjoyable golang test framework. ☆
269 - kinbiko/jsonassert (⭐141) — JSON assertion library for tests ☆
141 - adamluzsi/testcase (⭐127) — Opinionated testing framework ☆
127 - earthboundkid/be (⭐131) — The Go test helper for minimalists ☆
131 - corbym/gocrest (⭐106) — GoCrest - Hamcrest-like matchers for Go ☆
106 - hedhyw/gherkingen (⭐94) — Behaviour Driven Development tests generator for Golang ☆
94 - madflojo/testcerts (⭐84) — Generate test certificates on the fly ☆
84 - viant/dsunit (⭐45) — Datastore Testibility ☆
45 - go-restit/restit (⭐55) — A Go library help testing your RESTful API application ☆
55 - rekby/fixenv (⭐33) — Pytest-inspired fixture caching for Go tests ☆
33 - abecodes/dft (⭐19) — Docker wrapper for testing ☆
19
Testing Utilities
- dvyukov/go-fuzz (⭐4.8k) — Randomized testing for Go ☆
4,842 - pingcap/failpoint (⭐874) — Failpoint implementation for Go ☆
874
Validation
- go-playground/validator (⭐20k) — Struct and field validation for Go ☆
19,798 - Oudwins/zog (⭐1.2k) — Zod-inspired schema validation ☆
1,155 - gookit/validate (⭐1.1k) — Struct and data validation ☆
1,126 - twharmon/govalid (⭐113) — Struct validation using tags ☆
114 - faceair/jio (⭐124) — JSON schema validator like Joi ☆
124 - osamingo/checkdigit (⭐114) — Check digit algorithms ☆
114 - marrow16/valix (⭐31) — Request validation package ☆
31 - tiendc/go-validator (⭐32) — Intuitive validation library ☆
32
Text & NLP
Formatters
- dustin/go-humanize (⭐4.8k) — Human-friendly unit formatting ☆
4,808 - neilotoole/sq (⭐2.5k) — SQL data wrangler ☆
2,455 - bojanz/address (⭐82) — Address handling for Go ☆
82
Markup Languages
- BurntSushi/toml (⭐4.9k) — TOML parser with reflection ☆
4,912 - yuin/goldmark (⭐4.6k) — Markdown parser for Go ☆
4,652 - JohannesKaufmann/html-to-markdown (⭐3.5k) — Convert HTML to Markdown ☆
3,488 - pelletier/go-toml (⭐1.9k) — TOML library for Go ☆
1,910 - antchfx/htmlquery (⭐781) — XPath for HTML queries ☆
781 - clbanning/mxj (⭐633) — XML to/from map conversion ☆
633 - mmalcek/bafi (⭐113) — Universal format converter ☆
113
Miscellaneous
- microcosm-cc/bluemonday (⭐3.6k) — Fast HTML sanitizer for Go ☆
3,644 - gosimple/slug (⭐1.3k) — URL-friendly slugify ☆
1,323 - pemistahl/lingua-go (⭐1.3k) — Natural language detection ☆
1,325 - arunsupe/semantic-grep (⭐1.2k) — Grep for similar words ☆
1,215 - mattn/go-runewidth (⭐682) — Rune width for terminals ☆
684 - hedhyw/rex (⭐210) — Flexible regex constructor ☆
210 - IGLOU-EU/go-wildcard (⭐100) — Fast wildcard matching ☆
100 - JoshuaDoes/gofuckyourself (⭐68) — Swear filter for Go ☆
69 - alexsergivan/transliterator (⭐46) — Text transliterator ☆
46
Morphological Analyzers
- nlpodyssey/spago (⭐1.9k) — ML and NLP library for Go ☆
1,850 - ikawaha/kagome (⭐954) — Japanese morphological analyzer ☆
955 - afjoseph/RAKE.Go (⭐123) — Rapid Keyword Extraction in Go ☆
123 - jonreiter/govader (⭐53) — VADER sentiment analysis ☆
54
Parsers/Encoders/Decoders
- mvdan/sh (⭐8.6k) — Shell parser and formatter ☆
8,549 - mmcdole/gofeed (⭐2.8k) — Parse RSS, Atom, JSON feeds ☆
2,819 - google/go-querystring (⭐2.1k) — Encode structs to URL query strings ☆
2,132 - olebedev/when (⭐1.5k) — Natural language date parser ☆
1,461 - adrianmo/go-nmea (⭐257) — NMEA sentence parser ☆
257 - yassinebenaid/godump (⭐224) — Dump any Go variable ☆
224 - editorconfig/editorconfig-core-go (⭐151) — EditorConfig core in Go ☆
151 - bzick/tokenizer (⭐139) — Tokenizer/lexer for Go ☆
139 - emersion/go-vcard (⭐124) — vCard parser and formatter ☆
124 - polera/gonameparts (⭐43) — Takes a full name and splits it into individual name parts ☆
43
Scrapers
- gocolly/colly (⭐25k) — Web scraping framework for Go ☆
25,151 - PuerkitoBio/goquery (⭐15k) — jQuery-like HTML manipulation ☆
14,923 - mvdan/xurls (⭐1.3k) — Extract URLs from text ☆
1,251 - s0rg/crawley (⭐332) — The unix-way web crawler ☆
333 - zoomio/tagify (⭐39) — Extract tags from HTML/Markdown/text ☆
39
Text Analysis
- blevesearch/bleve (⭐11k) — Text/numeric/geo/vector indexing library ☆
10,994 - derekparker/trie (⭐787) — Trie for extremely fast prefix search ☆
787 - agnivade/levenshtein (⭐458) — Go implementation to calculate Levenshtein Distance. ☆
459 - plar/go-adaptive-radix-tree (⭐411) — Adaptive Radix Trees implemented in Go ☆
411 - viant/ptrie (⭐45) — A prefix tree implementation in go ☆
45
Tokenizers
- go-ego/gse (⭐2.8k) — Multilingual text segmentation ☆
2,790 - pebbe/textcat (⭐73) — N-gram text categorization ☆
73
Translation
- nicksnyder/go-i18n (⭐3.5k) — Translate Go programs ☆
3,488 - leonelquinteros/gotext (⭐492) — GNU gettext for Go ☆
492 - vorlif/spreak (⭐93) — Gettext-based translation library ☆
93 - invopop/ctxi18n (⭐92) — Context-based i18n for Go ☆
91 - mehanizm/iuliia-go (⭐56) — Cyrillic to Latin transliteration ☆
56 - youthlin/t (⭐21) — Translation util using gettext ☆
21
Third-party APIs
Cloud Provider APIs
- googleapis/google-cloud-go (⭐4.4k) — Google Cloud Client Libraries for Go. ☆
4,428 - googleapis/google-api-go-client (⭐4.4k) — Auto-generated Google APIs for Go. ☆
4,412 - aws/aws-sdk-go-v2 (⭐3.5k) — AWS SDK for the Go programming language. ☆
3,488 - minio/minio-go (⭐2.9k) — High-performance object storage ☆
2,915 - rhnvrm/simples3 (⭐197) — Simple AWS S3 library using REST ☆
198 - circa10a/go-aws-news (⭐18) — Go app + library to fetch what's new from AWS ☆
18 - chainifynet/aws-encryption-sdk-go (⭐22) — AWS Encryption SDK for Go ☆
22
Other APIs
- codingsince1985/geo-golang (⭐539) — Go library to access geocoding and reverse geocoding APIs ☆
539 - cyruzin/golang-tmdb (⭐157) — Wrapper for TMDb API ☆
159 - gregdel/pushover (⭐155) — Go wrapper for the Pushover API ☆
155 - mvrilo/go-redoc (⭐94) — Embedded OpenAPI documentation ☆
94 - rapito/go-spotify (⭐51) — Go library for the Spotify Web API ☆
51 - rinchsan/device-check-go (⭐25) — iOS DeviceCheck SDK for Go ☆
25 - zc2638/swag (⭐50) — Generate Swagger from code ☆
50 - staskobzar/goami2 (⭐21) — Simple Asterisk Manager Interface (AMI) library fo golang ☆
21 - sostronk/go-steam (⭐33) — Go library for querying Source servers ☆
33 - Icelain/jokeapi (⭐27) — Official golang wrapper for Sv443's jokeapi. ☆
27
Productivity APIs
- mk-5/fjira (⭐261) — The golang fuzzy-find cli jira interface ☆
261 - adlio/trello (⭐227) — Trello API wrapper for Go ☆
227 - ctreminiom/go-atlassian (⭐198) — Atlassian Cloud API client ☆
198 - koltyakov/gosip (⭐168) — SharePoint SDK for Go ☆
168 - FreeLeh/GoFreeDB (⭐90) — Database on top of Google Sheets ☆
90 - mehanizm/airtable (⭐85) — Simple golang airtable API wrapper ☆
85 - k-capehart/go-salesforce (⭐54) — Salesforce REST API client ☆
54
Utilities
Build & Release
- goreleaser/goreleaser (⭐16k) — Release engineering simplified ☆
15,652 - create-go-app/cli (⭐2.7k) — Create production-ready Go projects ☆
2,749 - miniscruff/changie (⭐864) — Automated changelog tool ☆
865 - karl-cardenas-coding/go-lambda-cleanup (⭐96) — Remove old AWS Lambda versions ☆
96
CLI Tools
- junegunn/fzf (⭐79k) — Command-line fuzzy finder ☆
78,589 - wagoodman/dive (⭐54k) — Explore Docker image layers ☆
53,575 - xo/usql (⭐9.8k) — Universal SQL CLI ☆
9,866 - minio/mc (⭐3.4k) — Unix utilities for object stores ☆
3,417 - joshmedeski/sesh (⭐1.8k) — Terminal session manager ☆
1,807 - itchyny/bed (⭐1.3k) — Binary editor in Go ☆
1,345 - owenthereal/upterm (⭐1.2k) — Instant terminal sharing ☆
1,173 - alajmo/mani (⭐669) — CLI for managing repositories ☆
669 - Unrud/remote-touchpad (⭐652) — Control mouse/keyboard remotely ☆
653 - chenquan/diskusage (⭐303) — Fast disk usage analyzer ☆
303 - reugn/wifiqr (⭐280) — Generate Wi-Fi QR codes ☆
280 - hedhyw/json-log-viewer (⭐217) — Interactive JSON log viewer ☆
217 - hrtsegv/gitcs (⭐130) — Git contributions graph generator ☆
130 - antham/yogo (⭐45) — Check yopmail from CLI ☆
45
Data Conversion
- samber/lo (⭐21k) — Lodash-style utilities for Go ☆
21,105 - duke-git/lancet (⭐5.3k) — Comprehensive util library ☆
5,277 - darccio/mergo (⭐3.1k) — Merge Go structs and maps ☆
3,090 - goforj/godump (⭐1.7k) — Pretty-printer for Go structs ☆
1,709 - gookit/filter (⭐151) — Data filtering and conversion ☆
151 - tiendc/gofn (⭐51) — High-performance generic functions ☆
51 - xorcare/pointer (⭐47) — Create optional field pointers ☆
47 - shockerli/cvt (⭐54) — Safe type conversion ☆
54
Database Extensions
- jmoiron/sqlx (⭐18k) — Extensions for database/sql ☆
17,538 - georgysavva/scany (⭐1.5k) — Scan database rows to structs ☆
1,506 - blockloop/scan (⭐610) — Scan SQL rows to structs ☆
610
Date and Time
- dromara/carbon (⭐5.2k) — Developer-friendly time package ☆
5,227 - yaa110/go-persian-calendar (⭐237) — Persian calendar for Go ☆
237 - bykof/gostradamus (⭐210) — Better DateTimes for Go ☆
210 - nathan-osman/go-sunrise (⭐173) — Calculate sunrise and sunset times ☆
173 - rickb777/date (⭐142) — Date handling package ☆
142 - relvacode/iso8601 (⭐157) — Fast ISO8601 date parser ☆
158
Dependency Injection
- uber-go/fx (⭐7.4k) — DI-based application framework ☆
7,395 - uber-go/dig (⭐4.5k) — Reflection-based DI toolkit ☆
4,454 - goioc/di (⭐377) — Simple DI for Go ☆
377 - go-kod/kod (⭐197) — DI with aspect-oriented support ☆
197 - i-love-flamingo/dingo (⭐187) — DI framework for Go ☆
188 - junioryono/godi (⭐70) — DI with service lifetimes ☆
71 - NVIDIA/gontainer (⭐65) — Simple DI container ☆
65 - matzefriedrich/parsley (⭐30) — Reflection-based DI package ☆
30 - muir/nject (⭐30) — Type-safe DI for Go ☆
30 - firasdarwish/ore (⭐25) — Advanced DI solution ☆
25 - logrange/linker (⭐35) — DI and IoC package ☆
35 - componego/componego (⭐28) — Component-oriented framework ☆
28 - gontainer/gontainer (⭐16) — YAML-based DI container ☆
16
Error Handling
- hashicorp/go-multierror (⭐2.6k) — Represent multiple errors as one ☆
2,556 - cockroachdb/errors (⭐2.4k) — Error library with portability ☆
2,365 - rotisserie/eris (⭐1.8k) — Errors with readable stack traces ☆
1,775 - joomcode/errorx (⭐1.3k) — Comprehensive error handling ☆
1,270 - ztrue/tracerr (⭐1.1k) — Errors with stack trace ☆
1,106 - samber/oops (⭐872) — Structured error handling ☆
875 - Southclaws/fault (⭐308) — Composable error wrapping ☆
308
File Handling
- schollz/croc (⭐34k) — Easily and securely send things from one computer to another ☆
34,372 - qax-os/excelize (⭐20k) — Excel XLSX library for Go ☆
20,396 - pdfcpu/pdfcpu (⭐8.5k) — PDF processor in Go ☆
8,522 - spf13/afero (⭐6.6k) — Filesystem abstraction for Go ☆
6,595 - dundee/gdu (⭐5.4k) — Fast disk usage analyzer ☆
5,408 - unidoc/unioffice (⭐4.8k) — Office document library ☆
4,823 - root-gg/plik (⭐1.7k) — Temporary file upload system ☆
1,711 - SpatiumPortae/portal (⭐1.8k) — Command-line file transfer utility ☆
1,751 - SebastiaanKlippert/go-wkhtmltopdf (⭐1.2k) — HTML to PDF wrapper ☆
1,178 - otiai10/copy (⭐770) — Copy directories recursively ☆
770 - ulikunitz/xz (⭐551) — Pure golang package for reading and writing xz-compressed files ☆
551 - no-src/gofs (⭐526) — Cross-platform file sync ☆
526 - viant/afs (⭐377) — Abstract file storage ☆
379 - mholt/archives (⭐383) — Create and extract archives ☆
384 - C2FO/vfs (⭐357) — Virtual file system for Go ☆
358 - gen2brain/go-unarr (⭐309) — Decompression library bindings ☆
309 - barasher/go-exiftool (⭐293) — Exiftool wrapper for metadata ☆
293 - gomutex/godocx (⭐244) — Go library for reading and writing Microsoft Docx ☆
244 - artonge/go-csv-tag (⭐129) — CSV reading with tags ☆
130 - charlievieth/fastwalk (⭐124) — Fast directory traversal ☆
125 - parsyl/parquet (⭐127) — Parquet file library ☆
127 - adelowo/gulter (⭐70) — Multipart form handling ☆
70 - go-the-way/exl (⭐32) — Excel binding to struct written in Go.(Only supports Go1.18+) ☆
32
Forms
- justinas/nosurf (⭐1.7k) — CSRF protection middleware ☆
1,731 - gorilla/csrf (⭐1.2k) — CSRF prevention middleware ☆
1,185 - go-playground/form (⭐903) — URL values to structs ☆
905 - ggicci/httpin (⭐384) — HTTP request to struct binding ☆
384 - sonh/qs (⭐80) — Encode structs to query params ☆
80 - cinar/checker (⭐48) — Input validation with struct tags ☆
48
Functional
- samber/mo (⭐3.3k) — Monads and FP for Go ☆
3,300 - BooleanCat/go-functional (⭐527) — Iterator library for Go ☆
527 - seborama/fuego (⭐146) — Functional programming in Go ☆
146 - rjNemo/underscore (⭐118) — Functional helpers for Go ☆
117
General
- wabarc/wayback (⭐2.2k) — Web archiving tool with IM interface ☆
2,163 - gabriel-vasile/mimetype (⭐2k) — MIME type detection by magic numbers ☆
1,957 - qmuntal/stateless (⭐1.3k) — Go library for creating finite state machines ☆
1,268 - jonboulle/clockwork (⭐725) — a fake clock for golang ☆
725 - Boeing/config-file-validator (⭐498) — Cross Platform tool to validate configuration files ☆
497 - biter777/countries (⭐502) — ISO country codes library ☆
502 - ungerik/go-dry (⭐488) — DRY (don't repeat yourself) package for Go ☆
488 - subosito/gotenv (⭐306) — Load environment variables from
.envorio.Readerin Go. ☆306 - viant/toolbox (⭐228) — Toolbox - go utility library ☆
228 - ikeikeikeike/go-sitemap-generator (⭐229) — Generate XML sitemaps ☆
229 - maja42/goval (⭐174) — Expression evaluation in golang ☆
174 - commander-cli/cmd (⭐160) — A simple package to execute shell commands on linux, windows and osx ☆
160 - jfcg/sorty (⭐144) — Fast Concurrent / Parallel Sorting in Go ☆
144 - tiendc/go-deepcopy (⭐126) — Fast deep-copy library for Go ☆
126 - syntaqx/cookie (⭐112) — Cookies, but with structs, for happiness. ☆
112 - pioz/countries (⭐95) — All you need when you are working with countries in Go. ☆
95 - arthurkushman/pgo (⭐88) — Go library for PHP community with convenient functions ☆
88 - wzshiming/gotype (⭐64) — Golang source code parsing, usage like reflect package ☆
64 - rkoesters/xdg (⭐48) — FreeDesktop.org (xdg) Specs implemented in Go ☆
48 - icza/backscanner (⭐69) — Scan file lines backward ☆
69 - kazhuravlev/just (⭐35) — Collection of useful functions. Complete simple tasks faster! ☆
35 - mikekonan/go-types (⭐23) — OpenAPI3 types for Go ☆
23 - ik5/gostrutils (⭐47) — Collections of string utils I have created over the years ☆
47 - osamingo/gosh (⭐36) — Provide Go Statistics Handler, Struct, Measure Method ☆
36 - floatdrop/debounce (⭐35) — A zero-allocation debouncer ☆
35 - lrita/numa (⭐38) — NUMA utility library for Go ☆
38 - nikolaydubina/watchhttp (⭐34) — Expose command output via HTTP ☆
34 - skovtunenko/graterm (⭐30) — Graceful termination primitives ☆
30
Logging
- sirupsen/logrus (⭐26k) — Structured, pluggable logging for Go. ☆
25,703 - uber-go/zap (⭐24k) — Fast structured logging ☆
24,371 - rs/zerolog (⭐12k) — Zero allocation JSON logger ☆
12,275 - davecgh/go-spew (⭐6.4k) — Deep pretty printer for debugging ☆
6,378 - golang/glog (⭐3.6k) — Leveled execution logs ☆
3,616 - k0kubun/pp (⭐2k) — Colored pretty printer for Go ☆
2,033 - lmittmann/tint (⭐1.2k) — Colorized slog handler ☆
1,250 - Lifailon/lazyjournal (⭐1.2k) — TUI for journald, Docker, K8s logs ☆
1,182 - getsentry/sentry-go (⭐1k) — Official Sentry SDK for Go ☆
1,049 - phuslu/log (⭐834) — Fastest structured logging ☆
834 - samber/slog-multi (⭐611) — Workflow design for slog handlers ☆
611 - gookit/slog (⭐537) — Configurable logging library ☆
537 - henvic/httpretty (⭐413) — Pretty-print HTTP requests ☆
413 - hashicorp/logutils (⭐371) — Logging utilities for Go ☆
371 - simukti/sqldb-logger (⭐382) — SQL database logger ☆
382 - samber/slog-formatter (⭐212) — Slog attribute formatting ☆
212 - DeRuina/timberjack (⭐121) — Log rolling library ☆
121 - rs/xlog (⭐141) — Context-aware HTTP logger ☆
141 - yuseferi/zax (⭐34) — Zap logger with context ☆
34 - clok/kemba (⭐17) — Tiny debug logging tool ☆
17
Networking Utils
- cristianoliveira/ergo (⭐650) — Manage apps on different ports ☆
650 - htcat/htcat (⭐561) — Parallel HTTP download ☆
561 - ferama/rospo (⭐358) — Persistent SSH tunnels ☆
358
Project Layout
- golang-standards/project-layout (⭐56k) — Standard Go project layout ☆
55,551 - Melkeydev/go-blueprint (⭐8.7k) — Spin up Go projects with popular frameworks ☆
8,706 - ardanlabs/service (⭐3.9k) — K8s service starter kit ☆
3,946 - Shpota/goxygen (⭐3.6k) — Generate full-stack web projects ☆
3,601 - mikestefanello/pagoda (⭐2.9k) — Full-stack web development starter kit ☆
2,918 - go-nunu/nunu (⭐2.6k) — CLI for building Go apps ☆
2,551 - sagikazarmark/modern-go-application (⭐1.9k) — Modern Go app example ☆
1,937 - naughtygopher/goapp (⭐1.1k) — Opinionated web app structure ☆
1,056 - allaboutapps/go-starter (⭐599) — Production-ready RESTful API template ☆
599 - golang-templates/seed (⭐556) — Go app GitHub template ☆
556 - raeperd/kickstart.go (⭐105) — Minimal HTTP server template ☆
106 - wangyoucao577/go-project-layout (⭐26) — Go project structure guide ☆
26
Resilience & Retry
- avast/retry-go (⭐2.9k) — Simple retry mechanism ☆
2,895 - eapache/go-resiliency (⭐2.3k) — Resiliency patterns for golang ☆
2,340 - failsafe-go/failsafe-go (⭐2.2k) — Fault tolerance patterns ☆
2,158 - rubyist/circuitbreaker (⭐1.2k) — Circuit breakers in Go ☆
1,164 - cep21/circuit (⭐806) — Hystrix-like circuit breaker ☆
808 - mennanov/limiters (⭐622) — Distributed rate limiters ☆
623 - kamilsk/retry (⭐346) — Advanced retry mechanism ☆
346 - webriots/rate (⭐165) — High-performance rate limiter ☆
165
Strings
- huandu/xstrings (⭐1.4k) — String functions from other langs ☆
1,418 - abhimanyu003/sttr (⭐1.3k) — CLI string operations ☆
1,296 - gobeam/stringy (⭐251) — String case conversions ☆
251 - ozgio/strutil (⭐207) — String utilities for Go ☆
207
System & Process
- cilium/ebpf (⭐7.6k) — eBPF library for Go ☆
7,581 - maruel/panicparse (⭐3.7k) — Crash your app in style ☆
3,717 - immortal/immortal (⭐833) — Cross-platform supervisor ☆
833 - derekparker/delve (⭐661) — Delve is a debugger for the Go programming language. ☆
661 - gotranspile/cxgo (⭐387) — Transpile C to Go ☆
387
UUID
- google/uuid (⭐6k) — UUID generation and parsing ☆
6,007 - oklog/ulid (⭐5k) — ULID implementation ☆
5,003 - gofrs/uuid (⭐1.8k) — UUID library for Go ☆
1,781 - osamingo/indigo (⭐112) — Sonyflake-based ID generator ☆
112 - sdrapkin/guid (⭐73) — Fast cryptographically safe Guid generator for Go ☆
73 - twharmon/gouid (⭐26) — Fast, dependable universally unique ids ☆
26
Version Control & Packages
Git APIs
- google/go-github (⭐11k) — Go library for accessing the GitHub v3 API ☆
11,160 - shurcooL/githubv4 (⭐1.2k) — GitHub GraphQL API v4 client ☆
1,187 - go-playground/webhooks (⭐1k) — Webhook receiver for GitHub, Bitbucket, GitLab, Gogs ☆
1,030 - andygrunwald/go-trending (⭐146) — Access GitHub trending repositories ☆
146 - andygrunwald/go-gerrit (⭐104) — Go client/library for Gerrit Code Review ☆
104
Package Management
- anchore/syft (⭐8.5k) — SBOM generator for containers ☆
8,503 - nao1215/gup (⭐552) — gup - Update binaries installed by "go install" with goroutines. ☆
554 - marwanhawari/stew (⭐335) — An independent package manager for compiled binaries. ☆
336 - chaindead/modup (⭐63) — TUI for Go dependency updates ☆
62
Version Control
- go-git/go-git (⭐7.3k) — Pure Go Git implementation ☆
7,255 - antham/chyle (⭐159) — Changelog generator from Git ☆
159 - gabyx/Githooks (⭐120) — Per-repo shared Git hooks ☆
120 - antham/gommit (⭐115) — Enforce git message commit consistency ☆
115 - jfrog/froggit-go (⭐52) — Universal VCS client library ☆
52 - kazhuravlev/git-tools (⭐30) — Useful set of tools which helps to manage git tags ☆
30
Web Development
Microservices
- zeromicro/go-zero (⭐33k) — Microservices framework with CLI tools ☆
32,805 - go-kit/kit (⭐28k) — A standard library for microservices. ☆
27,581 - go-kratos/kratos (⭐26k) — Your ultimate Go microservices framework for the cloud-native era. ☆
25,523 - micro/go-micro (⭐23k) — A Go microservices framework ☆
22,724 - smallnest/rpcx (⭐8.3k) — Feature-rich RPC framework ☆
8,276 - cloudwego/kitex (⭐7.9k) — High-performance Go RPC framework ☆
7,890 - go-dev-frame/sponge (⭐2.8k) — Code generation framework for Go ☆
2,802 - go-eagle/eagle (⭐2.4k) — A Go framework for the API or Microservice ☆
2,423 - unionj-cloud/go-doudou (⭐1.2k) — OpenAPI 3 and gRPC microservices framework ☆
1,198 - trpc-group/trpc-go (⭐1.1k) — A pluggable, high-performance RPC framework written in golang ☆
1,125 - gmsec/micro (⭐25) — A Go distributed systems development framework ☆
25
Middlewares
- urfave/negroni (⭐7.5k) — Idiomatic HTTP Middleware for Golang ☆
7,539 - tdewolff/minify (⭐4.1k) — Go minifiers for web formats ☆
4,079 - justinas/alice (⭐3.4k) — Painless middleware chaining for Go ☆
3,351 - rs/cors (⭐2.9k) — Go net/http configurable handler to handle CORS requests ☆
2,868 - didip/tollbooth (⭐2.9k) — Simple middleware to rate-limit HTTP requests. ☆
2,859 - unrolled/render (⭐2k) — Render JSON, XML, HTML, binary ☆
1,991 - lingrino/go-fault (⭐549) — go fault injection library ☆
549 - jub0bs/cors (⭐179) — perhaps the best CORS middleware library for Go ☆
180 - rookie-ninja/rk-gin (⭐51) — Start gin microservice from YAML, plugin of rk-boot ☆
51 - faabiosr/echo-middleware (⭐16) — Middlewares for Echo framework ☆
16
Routers
- gorilla/mux (⭐22k) — Powerful HTTP router ☆
21,873 - go-chi/chi (⭐22k) — Lightweight idiomatic HTTP router ☆
21,818 - gowww/router (⭐185) — A lightning fast HTTP router ☆
185 - gernest/alien (⭐134) — A lightweight and fast http router from outer space ☆
134 - ngamux/ngamux (⭐70) — Simple HTTP router for Go ☆
70 - bmf-san/goblin (⭐82) — A golang http router based on trie tree. ☆
82 - muir/nchi (⭐18) — golang http router with elegance, speed, and flexibility ☆
18
Template Engines
- a-h/templ (⭐10k) — A language for writing HTML user interfaces in Go. ☆
10,148 - valyala/quicktemplate (⭐3.3k) — Fast template engine for Go ☆
3,311 - johnfercher/maroto (⭐2.7k) — Create PDFs with Bootstrap grid ☆
2,651 - CloudyKit/jet (⭐1.4k) — Jet template engine ☆
1,389 - osteele/liquid (⭐343) — A Liquid template engine in Go ☆
344 - go-sprout/sprout (⭐209) — Template functions for Go ☆
209 - robfig/soy (⭐177) — Go implementation for Soy templates (Google Closure templates) ☆
177 - goradd/got (⭐38) — Template engine with Go code output ☆
38
Web Frameworks
- gin-gonic/gin (⭐88k) — High-performance HTTP framework ☆
88,223 - gofiber/fiber (⭐39k) — Express inspired web framework written in Go ☆
39,386 - beego/beego (⭐32k) — High-performance web framework ☆
32,423 - labstack/echo (⭐32k) — High performance, minimalist Go web framework ☆
32,225 - gofr-dev/gofr (⭐16k) — Microservice framework for Go ☆
16,398 - gogf/gf (⭐13k) — Powerful full-stack framework ☆
13,076 - cloudwego/hertz (⭐7.1k) — High-performance HTTP framework ☆
7,128 - goadesign/goa (⭐6.1k) — Design-first API framework ☆
6,064 - apache/dubbo-go (⭐4.9k) — Go Implementation For Apache Dubbo . ☆
4,892 - goravel/goravel (⭐4.5k) — The full-featured Golang Development Framework skeleton ☆
4,454 - danielgtaylor/huma (⭐3.9k) — Huma REST/HTTP API Framework for Golang with OpenAPI 3.1 ☆
3,877 - documize/community (⭐2.4k) — Modern Confluence alternative ☆
2,374 - go-sonic/sonic (⭐2.1k) — Blogging platform in Go ☆
2,124 - go-goyave/goyave (⭐1.8k) — The enterprise REST API framework ☆
1,768 - go-fuego/fuego (⭐1.7k) — Web framework with OpenAPI 3 ☆
1,678 - templui/templui (⭐1.4k) — UI components for Templ ☆
1,401 - savsgio/atreugo (⭐1.3k) — Micro web framework on fasthttp ☆
1,302 - ankorstore/yokai (⭐821) — Modular framework for Go apps ☆
822 - indeedeng/iwf (⭐631) — Workflow-as-code orchestration ☆
632 - i-love-flamingo/flamingo-commerce (⭐588) — Flexible Go web framework ☆
589 - i-love-flamingo/flamingo (⭐557) — Flexible Go web framework ☆
557 - rookie-ninja/rk-boot (⭐576) — Enterprise microservice framework ☆
576 - fastschema/fastschema (⭐540) — All-in-One Backend as a Service with Headless CMS Power ☆
541 - uadmin/uadmin (⭐355) — The web framework for Golang ☆
355 - xxjwxc/ginrpc (⭐302) — gin auto binding, grpc and annotated route ☆
302 - hidevopsio/hiboot (⭐180) — High-performance CLI and web apps ☆
180 - beatlabs/patron (⭐126) — Cloud-native microservice framework ☆
126 - gone-io/gone (⭐131) — Lightweight DI framework ☆
131 - claygod/microservice (⭐122) — Simple microservice framework ☆
122 - yaitoo/xun (⭐91) — Web framework on html/template ☆
91 - gookit/rux (⭐99) — Simple and fast web framework ☆
99 - go-spring/spring-core (⭐76) — Spring-inspired framework for Go ☆
77 - napsy/go-css (⭐91) — A very simple CSS parser, written in Go ☆
92 - abemedia/go-don (⭐58) — API framework written in Golang. ☆
58 - JiveGroup/gFly (⭐48) — Laravel inspired web framework written in Go ☆
48 - clubpay/ronykit (⭐36) — API Framework supporting REST and RPC. ☆
36 - SaiNageswarS/go-api-boot (⭐35) — gRPC + HTTP/2 production framework ☆
35
WebAssembly
- tinygo-org/tinygo (⭐17k) — Go compiler for microcontrollers ☆
17,221 - agnivade/wasmbrowsertest (⭐206) — Run WASM tests inside your browser ☆
206 - extism/go-sdk (⭐168) — Extism Go SDK - easily run WebAssembly modules in your Go applications ☆
168
Workflow & Scheduling
Job Scheduler
- go-co-op/gocron (⭐7k) — Easy and fluent Go cron scheduling ☆
6,961 - hatchet-dev/hatchet (⭐6.7k) — Run Background Tasks at Scale ☆
6,726 - reugn/go-quartz (⭐2k) — Minimalist and zero-dependency scheduling library for Go ☆
2,011 - adhocore/gronx (⭐499) — Lightweight cron expression parser ☆
500 - fieldryand/goflow (⭐473) — Simple but powerful DAG scheduler and dashboard ☆
473 - madflojo/tasks (⭐323) — In-process task scheduler ☆
323 - bart6114/cheek (⭐194) — cheek: a pico-sized declarative job scheduler ☆
195 - onatm/clockwerk (⭐182) — Job Scheduling Library ☆
182 - deepaksinghvi/cdule (⭐60) — Golang job scheduler ☆
60 - pardnchiu/go-scheduler (⭐32) — Scheduler with standard cron and task dependencies ☆
32 - romshark/sched (⭐30) — A job scheduler for Go with the ability to fast-forward time. ☆
30
Workflow Frameworks
- redpanda-data/connect (⭐8.6k) — Fancy stream processing made operationally mundane ☆
8,608 - dagu-org/dagu (⭐3.2k) — Workflow engine with Web UI ☆
3,162 - jf-tech/omniparser (⭐1.1k) — ETL streaming parser for Go ☆
1,079 - noneback/go-taskflow (⭐617) — Task-parallel programming library ☆
617 - cadence-workflow/cadence-go-client (⭐374) — Cadence workflow client for Go ☆
374 - luno/workflow (⭐222) — Type-safe workflow orchestration ☆
223 - rhosocial/go-dag (⭐37) — DAG-based workflow framework ☆
37
🏆 Top 100 by Stars
The most starred projects in this list, sorted by GitHub stars.
- ollama/ollama (⭐165k) — Run LLMs locally ☆
165,088 - kubernetes/kubernetes (⭐121k) — Production-Grade Container Scheduling and Management ☆
121,127 - gin-gonic/gin (⭐88k) — High-performance HTTP framework ☆
88,223 - junegunn/fzf (⭐79k) — Command-line fuzzy finder ☆
78,589 - moby/moby (⭐72k) — Container ecosystem components ☆
71,524 - caddyserver/caddy (⭐71k) — Multi-platform web server with HTTPS ☆
70,802 - prometheus/prometheus (⭐63k) — The Prometheus monitoring system and time series database. ☆
63,169 - traefik/traefik (⭐62k) — The Cloud Native Application Proxy ☆
62,163 - pocketbase/pocketbase (⭐57k) — Open Source realtime backend in 1 file ☆
56,746 - golang-standards/project-layout (⭐56k) — Standard Go project layout ☆
55,551 - go-gitea/gitea (⭐54k) — Self-hosted Git service ☆
54,295 - wagoodman/dive (⭐54k) — Explore Docker image layers ☆
53,575 - etcd-io/etcd (⭐52k) — Distributed key-value store ☆
51,612 - ethereum/go-ethereum (⭐51k) — Go implementation of the Ethereum protocol ☆
50,918 - mudler/LocalAI (⭐43k) — Local OpenAI alternative ☆
43,624 - spf13/cobra (⭐43k) — A Commander for modern Go CLI interactions ☆
43,432 - milvus-io/milvus (⭐43k) — Cloud-native vector database ☆
43,295 - charmbracelet/bubbletea (⭐41k) — A powerful little TUI framework ☆
40,592 - pingcap/tidb (⭐40k) — Cloud-native distributed SQL DB ☆
39,864 - go-gorm/gorm (⭐40k) — The fantastic ORM library for Golang, aims to be developer friendly ☆
39,646 - gofiber/fiber (⭐39k) — Express inspired web framework written in Go ☆
39,386 - schollz/croc (⭐34k) — Easily and securely send things from one computer to another ☆
34,372 - harness/harness (⭐34k) — End-to-end developer platform ☆
33,899 - zeromicro/go-zero (⭐33k) — Microservices framework with CLI tools ☆
32,805 - restic/restic (⭐33k) — Fast, secure backup program ☆
32,687 - k3s-io/k3s (⭐32k) — Lightweight Kubernetes ☆
32,435 - beego/beego (⭐32k) — High-performance web framework ☆
32,423 - labstack/echo (⭐32k) — High performance, minimalist Go web framework ☆
32,225 - cockroachdb/cockroach (⭐32k) — Cloud native distributed SQL database ☆
31,985 - kubernetes/minikube (⭐32k) — Run Kubernetes locally ☆
31,588 - influxdata/influxdb (⭐31k) — Scalable datastore for metrics, events, and real-time analytics ☆
31,344 - seaweedfs/seaweedfs (⭐31k) — Fast distributed storage for blobs ☆
30,925 - spf13/viper (⭐30k) — Go configuration with fangs ☆
30,141 - grafana/k6 (⭐30k) — A modern load testing tool, using Go and JavaScript ☆
30,125 - fyne-io/fyne (⭐28k) — Cross platform GUI toolkit in Go inspired by Material Design ☆
28,021 - go-kit/kit (⭐28k) — A standard library for microservices. ☆
27,581 - stretchr/testify (⭐26k) — Assertions and mocks for testing ☆
25,885 - sirupsen/logrus (⭐26k) — Structured, pluggable logging for Go. ☆
25,703 - go-kratos/kratos (⭐26k) — Your ultimate Go microservices framework for the cloud-native era. ☆
25,523 - gocolly/colly (⭐25k) — Web scraping framework for Go ☆
25,151 - tsenart/vegeta (⭐25k) — HTTP load testing tool and library. It's over 9000! ☆
24,958 - uber-go/zap (⭐24k) — Fast structured logging ☆
24,371 - urfave/cli (⭐24k) — Fast CLI framework for Go ☆
23,940 - valyala/fasthttp (⭐23k) — Fast HTTP package for Go ☆
23,293 - air-verse/air (⭐23k) — Live reload for Go apps ☆
23,148 - grpc/grpc-go (⭐23k) — The Go language implementation of gRPC. HTTP/2 based RPC ☆
22,830 - micro/go-micro (⭐23k) — A Go microservices framework ☆
22,724 - jaegertracing/jaeger (⭐23k) — Distributed tracing platform ☆
22,574 - redis/go-redis (⭐22k) — Redis Go client ☆
21,979 - gorilla/mux (⭐22k) — Powerful HTTP router ☆
21,873 - go-chi/chi (⭐22k) — Lightweight idiomatic HTTP router ☆
21,818 - FiloSottile/age (⭐22k) — Simple encryption tool ☆
21,650 - dgraph-io/dgraph (⭐22k) — high-performance graph database for real-time use cases ☆
21,618 - dolthub/dolt (⭐21k) — Dolt – Git for Data ☆
21,318 - samber/lo (⭐21k) — Lodash-style utilities for Go ☆
21,105 - vitessio/vitess (⭐21k) — Database clustering for MySQL ☆
20,844 - qax-os/excelize (⭐20k) — Excel XLSX library for Go ☆
20,396 - antonmedv/fx (⭐20k) — Terminal JSON viewer & processor ☆
20,337 - apache/casbin (⭐20k) — Authorization library for Go ☆
19,916 - go-playground/validator (⭐20k) — Struct and field validation for Go ☆
19,798 - nats-io/nats-server (⭐19k) — High-performance NATS message server ☆
19,341 - golangci/golangci-lint (⭐19k) — Fast linters runner for Go ☆
18,664 - golang-migrate/migrate (⭐18k) — Database migrations. CLI and Golang library. ☆
18,231 - jmoiron/sqlx (⭐18k) — Extensions for database/sql ☆
17,538 - rqlite/rqlite (⭐17k) — Lightweight distributed SQLite ☆
17,348 - tinygo-org/tinygo (⭐17k) — Go compiler for microcontrollers ☆
17,221 - sqlc-dev/sqlc (⭐17k) — Generate type-safe code from SQL ☆
17,144 - ent/ent (⭐17k) — An entity framework for Go ☆
16,972 - ipfs/kubo (⭐17k) — An IPFS implementation in Go ☆
16,956 - VictoriaMetrics/VictoriaMetrics (⭐16k) — Fast time series database and monitoring ☆
16,514 - gofr-dev/gofr (⭐16k) — Microservice framework for Go ☆
16,398 - keploy/keploy (⭐16k) — API testing with auto mocks ☆
16,293 - fatih/vim-go (⭐16k) — Go development plugin for Vim ☆
16,238 - pion/webrtc (⭐16k) — Pure Go implementation of the WebRTC API ☆
16,128 - goreleaser/goreleaser (⭐16k) — Release engineering simplified ☆
15,652 - hashicorp/packer (⭐16k) — Build machine images from config ☆
15,623 - dgraph-io/badger (⭐16k) — Fast key-value DB in Go. ☆
15,523 - tidwall/gjson (⭐15k) — Fast JSON value extraction ☆
15,461 - go-sql-driver/mysql (⭐15k) — MySQL driver for database/sql ☆
15,384 - go-task/task (⭐15k) — Fast cross-platform build tool inspired by Make ☆
15,105 - kubernetes-sigs/kind (⭐15k) — Kubernetes IN Docker - local clusters for testing Kubernetes ☆
15,091 - PuerkitoBio/goquery (⭐15k) — jQuery-like HTML manipulation ☆
14,923 - panjf2000/ants (⭐14k) — ants is the most powerful and reliable pooling solution for Go. ☆
14,364 - webview/webview (⭐14k) — Tiny webview library for Go ☆
13,943 - bytebase/bytebase (⭐14k) — Database DevSecOps platform ☆
13,820 - gizak/termui (⭐14k) — Golang terminal dashboard ☆
13,524 - jackc/pgx (⭐14k) — PostgreSQL driver and toolkit for Go ☆
13,506 - cloudflare/cloudflared (⭐14k) — Cloudflare Tunnel client ☆
13,470 - golang/groupcache (⭐13k) — Distributed cache library ☆
13,339 - juicedata/juicefs (⭐13k) — Distributed POSIX filesystem ☆
13,325 - gopherjs/gopherjs (⭐13k) — A compiler from Go to JavaScript for running Go code in a browser ☆
13,132 - gogf/gf (⭐13k) — Powerful full-stack framework ☆
13,076 - hajimehoshi/ebiten (⭐13k) — A dead simple 2D game engine for Go ☆
13,023 - hibiken/asynq (⭐13k) — Simple, reliable, and efficient distributed task queue in Go ☆
13,016 - chromedp/chromedp (⭐13k) — Chrome DevTools Protocol driver ☆
12,818 - IBM/sarama (⭐12k) — Sarama is a Go library for Apache Kafka. ☆
12,445 - rs/zerolog (⭐12k) — Zero allocation JSON logger ☆
12,275 - Shopify/toxiproxy (⭐12k) — TCP proxy for chaos testing ☆
11,893 - kubeshark/kubeshark (⭐12k) — API traffic analyzer for Kubernetes ☆
11,822 - drakkan/sftpgo (⭐12k) — Full-featured SFTP/FTP/HTTP server ☆
11,771
Gophers
- MariaLetta/free-gophers-pack (⭐3.9k) — This pack of 100+ gopher pictures and elements
- keygx/Go-gopher-Vector (⭐75) — Go gopher Vector Data (.ai, .svg)
- ashleymcnamara/gophers (⭐3.1k) — Gopher Artwork by Ashley McNamara
- sillecelik/go-gopher (⭐161) — The Go Gopher Amigurumi Pattern
- GolangUA/gopher-logos (⭐140) — adorable gopher logos
- egonelbre/gophers (⭐3.8k) — gophers artwork
- scraly/gophers (⭐36) — Gopher artwork (Golang mascot)
Contributing
Please see CONTRIBUTING for details.
Feedback
Found something wrong? Open an issue or submit a pull request — contributions are welcome!
Credits
License
The MIT License (MIT). Please see License File for more information.