+
Skip to content

Structured collection of Go frameworks, libraries, tools, and resources. Automatically maintained and up-to-date with metadata, filtering, and comprehensive categorization.

License

Notifications You must be signed in to change notification settings

abordage/awesome-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Go

Last update License

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

Actor Model

  • asynkron/protoactor-go — Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin ☆5,267
  • ergo-services/ergo — An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies. ☆4,029
  • anthdm/hollywood — Blazingly fast and light-weight Actor engine written in Golang ☆1,990
  • Tochemey/goakt — [Go] Distributed Actor framework using protocol buffers as message for Golang ☆268

Artificial Intelligence

  • ollama/ollama — Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models. ☆146,973
  • mudler/LocalAI — The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-grade hardware. No GPU required. Runs gguf, transformers, diffusers and many more models architectures. Features: Generate Text, Audio, Video, Images, Voice Cloning, Distributed, P2P inference ☆33,965
  • tmc/langchaingo — LangChain for Go, the easiest way to write LLM-based programs in Go ☆7,176
  • philippgille/chromem-go — Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence. ☆635
  • presbrey/ollamafarm — Manage and use multiple Ollama instances with automatic offline detection/failover and model availability tracking ☆80

Audio and Music

Authentication and OAuth

  • casbin/casbin — An authorization library that supports access control models like ACL, RBAC, ABAC in Golang ☆18,880
  • golang-jwt/jwt — Go implementation of JSON Web Tokens (JWT). ☆8,268
  • markbates/goth — Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications. ☆6,114
  • golang/oauth2 — Go OAuth2 ☆5,647
  • ory/keto — The most scalable and customizable permission server on the market. Fix your slow or broken permission system with Google's proven "Zanzibar" approach. Supports ACL, RBAC, and more. Written in Go, cloud native, headless, API-first. Available as a service on Ory Network and for self-hosters. ☆5,068
  • aarondl/authboss — The boss of http auth. ☆3,999
  • cerbos/cerbos — Cerbos is the open core, language-agnostic, scalable authorization solution that makes user permissions and authorization simple to implement and manage by writing context-aware access control policies for your application resources. ☆3,949
  • openfga/openfga — A high performance and flexible authorization/permission engine built for developers and inspired by Google Zanzibar ☆3,895
  • alexedwards/scs — HTTP Session Management for Go ☆2,372
  • lestrrat-go/jwx — Complete implementation of JWx (Javascript Object Signing and Encryption/JOSE) technologies for Go ☆2,134
  • openshift/osin — Golang OAuth2 server library ☆1,928
  • dghubble/gologin — Go login handlers for authentication providers (OAuth1, OAuth2) ☆1,916
  • zitadel/oidc — Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation ☆1,610
  • cristalhq/jwt — Safe, simple and fast JSON Web Tokens for Go ☆687
  • shaj13/go-guardian — Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication. ☆587
  • go-jose/go-jose — An implementation of JOSE standards (JWE, JWS, JWT) in Go ☆420
  • abraithwaite/jeff — Jeff provides the simplest way to manage web sessions in Go. ☆269
  • Kwynto/gosession — This is quick session for net/http in golang. This package is perhaps the best implementation of the session mechanism, at least it tries to become one. ☆258
  • leodip/goiabada — Goiabada is an OAuth2 / OpenID Connect server written in Go. ☆155
  • RijulGulati/otpgen — Library to generate TOTP/HOTP codes ☆140
  • jellydator/sessionup — Straightforward HTTP session management ☆128
  • icza/session — Go session management for web servers (including support for Google App Engine - GAE). ☆118
  • brianvoe/sjwt — Simple JWT Golang ☆123
  • essentialkaos/branca — Authenticated encrypted API tokens (IETF XChaCha20-Poly1305 AEAD) for Golang ☆90
  • mengzhuo/cookiestxt — cookiestxt implement parser of cookies txt format ☆19

Benchmarks

Blockchain

  • ethereum/go-ethereum — Go implementation of the Ethereum protocol ☆49,314
  • ipfs/kubo — An IPFS implementation in Go ☆16,582
  • lightningnetwork/lnd — Lightning Network Daemon ☆7,976
  • cosmos/cosmos-sdk — A Framework for Building High Value Public Blockchains ☆6,658
  • gagliardetto/solana-go — Go SDK library and RPC client for the Solana Blockchain ☆1,356
  • gnolang/gno — Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + gno.land: a blockchain for timeless code and fair open-source. ☆974
  • cometbft/cometbft — CometBFT: A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. A fork and successor to Tendermint Core. ☆762
  • ChainSafe/gossamer — Go Implementation of the Polkadot Host ☆451

Bot Building

  • tucnak/telebot — Telebot is a Telegram bot framework in Go. ☆4,400
  • wabarc/wayback — An archiving tool with an IM-style interface that prioritizes privacy and accessibility, integrated with various archival services including Internet Archive, archive.today, Ghostarchive, IPFS, Telegraph, and file systems. ☆2,006
  • go-telegram/bot — Telegram Bot API Go framework ☆1,234
  • mymmrac/telego — Telegram Bot API library for Go ☆741
  • diamondburned/arikawa — A Golang library and framework for the Discord API. ☆534
  • NicoNex/echotron — An elegant and concurrent library for the Telegram bot API in Go. ☆405
  • gempir/go-twitch-irc — go irc client for twitch.tv ☆378
  • innogames/slack-bot — Ready to use Slack bot for lazy developers: start Jenkins jobs, watch Jira tickets, watch pull requests with AI support... ☆199
  • mr-linch/go-tg — Go client library for accessing Telegram Bot API, with batteries for building complex bots included. ☆119
  • slack-io/slacker — Slack Bot Framework ☆55
  • onrik/micha — Client lib for Telegram bot api ☆30

Build Automation

  • air-verse/air — Live reload for Go apps ☆21,104
  • go-task/task — A task runner / simpler Make alternative written in Go ☆13,175
  • joerdav/xc — Markdown defined task runner. ☆1,305
  • goyek/goyek — Task automation Go library ☆630

Code Analysis

  • golangci/golangci-lint — Fast linters runner for Go ☆17,350
  • mgechev/revive — ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint ☆5,254
  • kisielk/errcheck — errcheck checks that you checked errors. ☆2,428
  • go-critic/go-critic — The most opinionated Go source code linter for code audit. ☆1,973
  • segmentio/golines — A golang formatter that fixes long lines ☆1,083
  • daveshanley/vacuum — vacuum is the worlds fastest OpenAPI 3, OpenAPI 2 / Swagger linter and quality analysis tool. Built in go, it tears through API specs faster than you can think. vacuum is compatible with Spectral rulesets and generates compatible reports. ☆803
  • yuroyoro/goast-viewer — Golang AST visualizer ☆784
  • sqs/goreturns — A gofmt/goimports-like tool for Go programmers that fills in Go return statements with zero values to match the func return types ☆534
  • presmihaylov/todocheck — A static code analyser for annotated TODO comments ☆434
  • mdempsky/unconvert — Remove unnecessary type conversions from Go source ☆384
  • tomarrell/wrapcheck — A Go linter to check that errors from external packages are wrapped ☆342
  • mibk/dupl — a tool for code clone detection ☆352
  • shurcooL/gostatus — A command line tool that shows the status of Go repositories. ☆244
  • Antonboom/testifylint — The Golang linter that checks usage of github.com/stretchr/testify. ☆144
  • Crocmagnon/fatcontext — detects nested contexts in loops or function literals ☆48
  • sashamelentyev/usestdlibvars — A linter that detect the possibility to use variables/constants from the Go standard library. ☆45
  • mccoyst/validate — A Go package to automatically validate fields with tags ☆62

Command Line

Advanced Console UIs

  • charmbracelet/bubbletea — A powerful little TUI framework ☆33,371
  • antonmedv/fx — Terminal JSON viewer & processor ☆19,694
  • gizak/termui — Golang terminal dashboard ☆13,391
  • jroimartin/gocui — Minimalist Go package aimed at creating Console User Interfaces. ☆10,295
  • charmbracelet/lipgloss — Style definitions for nice terminal layouts ☆9,285
  • charmbracelet/bubbles — TUI components for Bubble Tea ☆6,606
  • c-bata/go-prompt — Building powerful interactive prompts in Go, inspired by python-prompt-toolkit. ☆5,386
  • pterm/pterm — #PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more It's completely configurable and 100% cross-platform compatible. ☆5,182
  • schollz/progressbar — A really basic thread-safe progress bar for Golang applications ☆4,440
  • mum4k/termdash — Terminal based dashboard. ☆2,848
  • guptarohit/asciigraph — make lightweight ASCII line graph in command line apps with no other dependencies ☆2,850
  • briandowns/spinner — Go (golang) package with 90 configurable terminal spinner/progress indicators. ☆2,447
  • vbauerster/mpb — multi progress bar for Go cli applications ☆2,417
  • muesli/termenv — Advanced ANSI style & color support for your terminal applications ☆1,866
  • gookit/color — Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output ☆1,551
  • logrusorgru/aurora — Golang ultimate ANSI-colors that supports Printf/Sprintf methods ☆1,460
  • mattn/go-isatty — ☆863
  • mattn/go-colorable — ☆793
  • Delta456/box-cli-maker — Make Highly Customized Boxes for CLI ☆566
  • Evertras/bubble-table — A customizable, interactive table component for the Bubble Tea framework ☆506
  • cyucelen/marker — Marker is the easiest way to match and mark strings for colorful terminal outputs! ☆51

Standard CLI

  • spf13/cobra — A Commander for modern Go CLI interactions ☆41,167
  • urfave/cli — A declarative, simple, fast, and fun package for building command line tools in Go ☆23,350
  • elves/elvish — Powerful scripting language & versatile interactive shell ☆6,066
  • alecthomas/kingpin — A Go command line and flag parser ☆3,539
  • dnote/dnote — A simple command line notebook for programmers ☆2,889
  • jessevdk/go-flags — go command line option parser ☆2,665
  • spf13/pflag — Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. ☆2,600
  • alexflint/go-arg — Struct-based argument parsing in Go ☆2,162
  • nanovms/ops — ops - build and run nanos unikernels ☆1,371
  • carapace-sh/carapace-bin — A multi-shell completion binary. ☆1,359
  • posener/complete — bash completion written in go + bash completion for go command ☆939
  • carapace-sh/carapace — A multi-shell completion library. ☆755
  • leaanthony/clir — A Simple and Clear CLI library. Dependency free. ☆193
  • urfave/sflags — Generate flags by parsing structures ☆162
  • hedzr/cmdr — POSIX-compliant command-line UI (CLI) parser and Hierarchical-configuration operations ☆140
  • reeflective/readline — Shell library with powerful and modern UI, large feature set, and .inputrc support ☆119
  • cristalhq/acmd — Simple, useful and opinionated CLI package in Go. ☆128
  • codingconcepts/env — Tag-based environment configuration for structs ☆121
  • reeflective/console — Closed-loop application library for Cobra commands (powerful, ready-to-run and easy to use) ☆97
  • dixonwille/wlog — A simple logging interface that supports cross-platform color and concurrency. ☆67
  • DavidGamba/go-getoptions — Fully featured Go (golang) command line option parser with built-in auto-completion support. ☆61
  • nyaosorg/go-readline-ny — The New Yet another Readline for Go ☆29
  • hashicorp/cli — A Go library for implementing command-line interfaces. ☆26
  • sgreben/flagvar — A collection of CLI argument types for the Go flag package. ☆45
  • carapace-sh/carapace-spec — A multi-shell completion spec. ☆22
  • jxskiss/mcli — A minimal but powerful cli library for Go ☆41

Configuration

  • spf13/viper — Go configuration with fangs ☆28,906
  • bytedance/sonic — A blazingly fast JSON serializing & deserializing library ☆8,409
  • caarlos0/env — A simple, zero-dependencies library to parse environment variables into structs ☆5,641
  • knadh/koanf — Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. ☆3,327
  • alecthomas/kong — Kong is a command-line parser for Go ☆2,720
  • ilyakaznacheev/cleanenv — Clean and minimalistic environment configuration reader for Golang ☆1,867
  • adrg/xdg — Go implementation of the XDG Base Directory Specification and XDG user directories ☆844
  • cristalhq/aconfig — Simple, useful and opinionated config loader. ☆594
  • gookit/config — Go configuration manage (load, get, set, export). support JSON, YAML, TOML, Properties, INI, HCL, ENV and Flags. ☆559
  • kkyr/fig — A minimalist Go configuration library ☆383
  • hjson/hjson-go — Hjson for Go ☆336
  • nil-go/konf — The simplest config loader for Go that reads/watches from file, env, flag and clouds (AWS, Azure, GCP). ☆325
  • vrischmann/envconfig — Small library to read your configuration from environment variables ☆244
  • chaindead/zerocfg — Zero-effort, concise configuration management that avoids boilerplate and repetitive actions. ☆192
  • beatlabs/harvester — Harvest configuration, watch and notify subscriber ☆133
  • BoRuDar/configuration — Library for setting values to structs' fields from env, flags, files or default tag ☆108
  • omeid/uconfig — Lightweight, zero-dependency, and extendable configuration management library for Go ☆72
  • gurkankaymak/hocon — go implementation of lightbend's HOCON configuration library https://github.com/lightbend/config85
  • go-simpler/env — Load environment variables into a config struct ☆72
  • num30/config — Declarative configuration for Go ☆59
  • PaddleHQ/go-aws-ssm — Go package that interfaces with AWS System Manager ☆62
  • sakirsensoy/genv — Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables to be loaded from the .env file. ☆42
  • dsbasko/go-cfg — The library provides a unified way to read configuration data from different sources, such as environment variables, command line flags, and configuration files. ☆47
  • wkhere/bcl — Basic Configuration Language ☆27
  • greencoda/confiq — Structured data format to config struct decoder library for Go ☆38
  • nasermirzaei89/env — Golang Get Environment Variables Package with Zero Dependencies ☆19
  • romshark/yamagiconf — YAML configuration framework for Go. ☆18
  • deatil/go-array — A Go package that read or set data from map, slice or json ☆20

Continuous Integration

  • harness/harness — Harness Open Source is an end-to-end developer platform with Source Control Management, CI/CD Pipelines, Hosted Developer Environments, and Artifact Registries. ☆32,982
  • woodpecker-ci/woodpecker — Woodpecker is a simple, yet powerful CI/CD engine with great extensibility. ☆5,253
  • ovh/cds — Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform ☆4,738
  • raviqqe/muffet — Fast website link checker in Go ☆2,567
  • vladopajic/go-test-coverage — go-test-coverage is a tool designed to report issues when test coverage falls below a specified threshold ☆158
  • nikogura/gomason — A tool for testing, building, signing, and publishing binaries. ☆65
  • opnlabs/dot — A minimal continuous integration system. Uses docker to run jobs concurrently in stages. ☆24
  • gha-common/go-beautiful-html-coverage — A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free. ☆17

CSS Preprocessors

Data Integration Frameworks

  • redpanda-data/connect — Fancy stream processing made operationally mundane ☆8,412
  • jf-tech/omniparser — omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc. ☆1,051

Data Structures and Algorithms

Bit Sets

Bit-packing and Compression

  • RoaringBitmap/roaring — Roaring bitmaps in Go (golang), used by InfluxDB, Bleve, DataDog ☆2,737
  • iancmcc/bingo — Fast, zero-allocation, lexicographic-order-preserving packing/unpacking of native Go types to bytes. ☆46
  • amallia/go-ef — A Go implementation of the Elias-Fano encoding ☆40

Bloom and Cuckoo Filters

Data Structure and Algorithm Collections

  • Workiva/go-datastructures — A collection of useful, performant, and threadsafe Go datastructures. ☆7,816
  • liyue201/gostl — Data structure and algorithm library for go, designed to provide functions similar to C++ STL ☆1,100

Maps

  • mhmtszr/concurrent-swiss-map — A high-performance, thread-safe generic concurrent hash map implementation with Swiss Map. ☆246
  • lrita/cmap — a thread-safe concurrent map for go ☆96
  • goradd/maps — map library using Go generics that offers a standard interface, go routine synchronization, and sorting ☆50
  • srfrog/dict — Python-like dictionaries for Go ☆47

Miscellaneous Data Structures and Algorithms

Pipes

Queues

  • hatchet-dev/hatchet — Run Background Tasks at Scale ☆5,836
  • gammazero/deque — Fast ring-buffer deque (double-ended queue) ☆693
  • adrianbrad/queue — Go package providing multiple queue implementations. Developed in a thread-safe generic way. ☆311
  • embano1/memlog — A Kafka log inspired in-memory and append-only data structure ☆133
  • mikestefanello/backlite — Type-safe, persistent, embedded task queues and background job runner w/ SQLite ☆100

Sets

  • deckarep/golang-set — A simple, battle-tested and generic set type for the Go language. Trusted by GoogleCloudPlatform, Docker, 1Password, Ethereum and Hashicorp. ☆4,548

Text Analysis

Trees

Database

Caches

  • golang/groupcache — groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. ☆13,216
  • hypermodeinc/ristretto — A high performance memory-bound Go cache ☆6,286
  • eko/gocache — A complete Go cache library that brings you multiple ways of managing your caches ☆2,705
  • bluele/gcache — An in-memory cache library for golang. It supports multiple eviction policies: LRU, LFU, ARC ☆2,697
  • VictoriaMetrics/fastcache — Fast thread-safe inmemory cache for big number of entries in Go. Minimizes GC overhead ☆2,243
  • maypok86/otter — A high performance caching library for Go ☆2,240
  • viccon/sturdyc — A caching library with advanced concurrency features designed to make I/O heavy applications robust and highly performant ☆1,227
  • jellydator/ttlcache — An in-memory cache with item expiration and generics ☆1,115
  • EchoVault/SugarDB — Embeddable and distributed in-memory alternative to Redis. ☆496
  • faabiosr/cachego — Golang Cache component - Multiple drivers ☆373
  • Yiling-J/theine-go — high performance in-memory cache ☆336
  • elastic/go-freelru — ☆244
  • naughtygopher/pocache — Pocache is a minimal cache package which focuses on a preemptive optimistic caching strategy ☆226
  • erni27/imcache — A zero-dependency generic in-memory cache Go library ☆125
  • OrlovEvgeny/go-mcache — High-throughput, sharded in-memory KV cache for Go with minimal allocations ☆98
  • zekroTJA/timedmap — A thread safe map which has expiring key-value pairs. ☆75
  • codingsince1985/couchcache — A RESTful caching micro-service in Go backed by Couchbase ☆67
  • mdaliyan/icache — A High Performance, Generic, thread-safe, zero-dependency, key-value, in-memory cache ☆21

Database Schema Migration

  • golang-migrate/migrate — Database migrations. CLI and Golang library. ☆17,032
  • bytebase/bytebase — World's most advanced database DevSecOps solution for Developer, Security, DBA and Platform Engineering teams. The GitHub/GitLab for database DevSecOps. ☆12,756
  • pressly/goose — A database migration tool. Supports SQL migrations and Go functions. ☆8,777
  • ariga/atlas — Manage your database schema as code ☆7,079
  • amacneil/dbmate — A lightweight, framework-agnostic database migration tool. ☆6,144
  • rubenv/sql-migrate — SQL schema migration tool for Go. ☆3,353
  • skeema/skeema — Declarative pure-SQL schema management for MySQL and MariaDB ☆1,329
  • go-gormigrate/gormigrate — Minimalistic database migration helper for Gorm ORM ☆1,105
  • linkedin/goavro — Goavro is a library that encodes and decodes Avro data. ☆1,032
  • sunary/sqlize — powerful SQL toolkit; offering parsing, building, and migration capabilities. ☆122
  • robinjoseph08/go-pg-migrations — A Go package to help write migrations with go-pg/pg. ☆86
  • adlio/schema — Embedded schema migration package for Go ☆42
  • khezen/avro — Apache AVRO for go ☆47
  • muir/libschema — database schema migrations on a per-library basis [Go] ☆17

Database Tools

  • vitessio/vitess — Vitess is a database clustering system for horizontal scaling of MySQL. ☆19,860
  • sosedoff/pgweb — Cross-platform client for PostgreSQL databases ☆8,955
  • go-mysql-org/go-mysql — a powerful mysql toolset with Go ☆4,792
  • prest/prest — PostgreSQL REST, low-code, simplify and accelerate development, instant, realtime, high-performance on any Postgres application, existing or new ☆4,375
  • ContentSquare/chproxy — Open-Source ClickHouse http proxy and load balancer ☆1,369
  • cybertec-postgresql/pg_timetable — pg_timetable: Advanced scheduling for PostgreSQL ☆1,193
  • HDT3213/rdb — Golang implemented Redis RDB parser for secondary development and memory analysis ☆549
  • nikepan/clickhouse-bulk — Collects many small inserts to ClickHouse and send in big inserts ☆500
  • wesql/wescale — WeScale is a Modern MySQL proxy that supports read-write-split, read-after-write-consistency, load balancing and OnlineDDL. ☆305
  • gatewayd-io/gatewayd — Database Gateway for Building Data-Driven Applications ☆263
  • liweiyi88/onedump — Effortless database administration tool ☆204
  • sj14/dbbench — dbbench is a simple database benchmarking tool which supports several databases and own scripts ☆109
  • bartventer/gorm-multitenancy — Multi-tenancy support for GORM managed databases ☆61
  • kazhuravlev/database-gateway — Safe access to production databases ☆28
  • codingconcepts/dg — A fast data generator that produces CSV files from generated relational data ☆35

Databases Implemented in Go

  • prometheus/prometheus — The Prometheus monitoring system and time series database. ☆59,548
  • pingcap/tidb — TiDB - the open-source, cloud-native, distributed SQL database designed for modern applications. ☆38,751
  • milvus-io/milvus — Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search ☆36,066
  • cockroachdb/cockroach — CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement. ☆31,093
  • influxdata/influxdb — Scalable datastore for metrics, events, and real-time analytics ☆30,346
  • hypermodeinc/dgraph — high-performance graph database for real-time use cases ☆21,022
  • dolthub/dolt — Dolt – Git for Data ☆18,898
  • rqlite/rqlite — The lightweight, user-friendly, distributed relational database built on SQLite. ☆16,774
  • hypermodeinc/badger — Fast key-value DB in Go. ☆14,811
  • VictoriaMetrics/VictoriaMetrics — VictoriaMetrics: fast, cost-effective monitoring solution and time series database ☆14,557
  • etcd-io/bbolt — An embedded key/value database for Go. ☆8,932
  • codenotary/immudb — immudb - immutable database based on zero trust, SQL/Key-Value/Document model, tamperproof, data change history ☆8,781
  • authzed/spicedb — Open Source, Google Zanzibar-inspired database for scalably storing and querying fine-grained authorization data ☆5,862
  • cockroachdb/pebble — RocksDB/LevelDB inspired key-value database in Go ☆5,386
  • rosedblabs/rosedb — Lightweight, fast and reliable key/value storage engine based on Bitcask. ☆4,832
  • tidwall/buntdb — BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support ☆4,742
  • nalgeon/redka — Redis re-implemented with SQL ☆4,005
  • HDT3213/godis — A Golang implemented Redis Server and Cluster ☆3,725
  • nutsdb/nutsdb — A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. ☆3,484
  • lindb/lindb — LinDB is a scalable, high performance, high availability distributed time series database. ☆3,042
  • lotusdblabs/lotusdb — Most advanced key-value database written in Go, extremely fast, compatible with LSM tree and B+ tree. ☆2,209
  • kelindar/column — High-performance, columnar, in-memory store with bitmap indexing in Go ☆1,490
  • akrylysov/pogreb — Embedded key-value store for read-heavy workloads written in Go ☆1,344
  • securitybunker/databunker — Secure Vault for Customer PII/PHI/PCI/KYC Records ☆1,311
  • objectbox/objectbox-go — Embedded Go Database, the fast alternative to SQLite, gorm, etc. ☆1,235
  • marcboeker/go-duckdb — go-duckdb provides a database/sql driver for the DuckDB database engine. ☆977
  • couchbase/moss — moss - a simple, fast, ordered, persistable, key-val storage library for golang ☆1,008
  • amit-davidson/LibraDB — LibraDB is a simple, persistent key/value store written in pure Go in less than 1000 lines for learning purposes. ☆189
  • xgzlucario/rotom — A tiny Redis server built with Golang, compatible with RESP protocols. ☆39

SQL Query Builders

  • sqlc-dev/sqlc — Generate type-safe code from SQL ☆15,563
  • Masterminds/squirrel — Fluent SQL generation for golang ☆7,514
  • xo/dbtpl — Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server ☆3,839
  • go-jet/jet — Type safe SQL builder with code generation and automatic query result data mapping ☆3,280
  • doug-martin/goqu — SQL builder and query library for golang ☆2,537
  • didi/gendry — a golang library for sql builder ☆1,636
  • qustavo/dotsql — A Golang library for using SQL. ☆748
  • lqs/sqlingo — A lightweight DSL & ORM which helps you to write SQL in Go. ☆429
  • nullism/bqb — BQB is a lightweight and easy to use query builder that works with sqlite, mysql, mariadb, postgres, and others. ☆172
  • arthurkushman/buildsqlx — Go database query builder library for PostgreSQL ☆181
  • galeone/igor — igor is an abstraction layer for PostgreSQL with a gorm like syntax. ☆126
  • cristalhq/builq — Easily build SQL queries in Go. ☆94
  • HnH/qry — Write your SQL queries in raw files with all benefits of modern IDEs, use them in an easy way inside your application with all the profit of compile time constants ☆35
  • motrboat/hotcoal — Hotcoal - Secure your handcrafted SQL against injection ☆24

Database Drivers

Interfaces to Multiple Backends

  • philippgille/gokv — Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more) ☆802
  • avito-tech/go-transaction-manager — Transaction manager for GoLang ☆321
  • fogfish/dynamo — Generic Golang Key/Value trait for AWS storage services ☆21
  • viant/dsc — Datastore Connectivity in go ☆34

NoSQL Database Drivers

  • redis/go-redis — Redis Go client ☆21,105
  • gomodule/redigo — Go client for Redis ☆9,833
  • mongodb/mongo-go-driver — The Official Golang driver for MongoDB ☆8,395
  • bradfitz/gomemcache — Go Memcached client library #golang ☆1,824
  • qiniu/qmgo — Qmgo - The Go driver for MongoDB. It‘s based on official mongo-go-driver but easier to use like Mgo. ☆1,328
  • Kamva/mgm — Mongo Go Models (mgm) is a fast and simple MongoDB ODM for Go (based on official Mongo Go Driver) ☆761
  • aerospike/aerospike-client-go — Aerospike Client Go ☆450
  • couchbase/gocb — The Couchbase Go SDK ☆373
  • go-kivik/kivik — Common interface to CouchDB or CouchDB-like databases for Go and GopherJS ☆325
  • nitishm/go-rejson — Golang client for redislabs' ReJSON module with support for multilple redis clients (redigo, go-redis) ☆343
  • couchbase/go-couchbase — Couchbase client in Go ☆323
  • chenmingyong0423/go-mongox — A Go Mongo library based on the official MongoDB driver, featuring streamlined document operations, generic binding of structs to collections, built-in BSON doc builder, automated field updates, struct validation, hooks, and plugin-based programming. ☆201
  • btnguyen2k/gocosmos — Go database/sql driver for Azure Cosmos DB SQL API ☆22
  • aliexpressru/gomemcached — A Binary Memcached client for Go with support for sharding using consistent hashing, along with SASL. ☆20

Relational Database Drivers

Search and Analytic Databases

Date and Time

Distributed Systems

  • zeromicro/go-zero — A cloud-native Go microservices framework with cli tool for productivity. ☆31,450
  • go-kit/kit — A standard library for microservices. ☆27,171
  • go-kratos/kratos — Your ultimate Go microservices framework for the cloud-native era. ☆24,610
  • grpc/grpc-go — The Go language implementation of gRPC. HTTP/2 based RPC ☆22,029
  • micro/go-micro — A Go microservices framework ☆22,402
  • nats-io/nats-server — High-Performance server for NATS.io, the cloud and edge native messaging system. ☆17,529
  • micro/micro — A microservices toolkit ☆12,271
  • hashicorp/raft — Golang implementation of the Raft consensus protocol ☆8,697
  • smallnest/rpcx — Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily ☆8,233
  • cloudwego/kitex — Go RPC framework with high-performance and strong-extensibility for building micro-services. ☆7,546
  • luraproject/lura — Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation ☆6,584
  • anacrolix/torrent — Full-featured BitTorrent client package and utilities ☆5,810
  • lni/dragonboat — A feature complete and high performance multi-group Raft library in Go. ☆5,204
  • emitter-io/emitter — High performance, distributed and low latency publish-subscribe platform. ☆3,955
  • chrislusf/gleam — Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly. ☆3,531
  • dragonflyoss/dragonfly — Dragonfly is an open source P2P-based file distribution and image acceleration system. It is hosted by the Cloud Native Computing Foundation (CNCF) as an Incubating Level Project. ☆2,669
  • go-eagle/eagle — A Go framework for the API or Microservice ☆2,328
  • go-dev-frame/sponge — A powerful and easy-to-use Go development framework that enables you to effortlessly build stable, reliable, and high-performance backend services with a "low-code" approach. ☆2,214
  • bsm/redislock — Simplified distributed locking implementation using Redis ☆1,643
  • mochi-mqtt/server — The fully compliant, embeddable high-performance Go MQTT v5 server for IoT, smarthome, and pubsub ☆1,575
  • hprose/hprose-golang — Hprose is a cross-language RPC. This project is Hprose for Golang. ☆1,262
  • unionj-cloud/go-doudou — go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well. ☆1,203
  • k8gb-io/k8gb — A cloud native Kubernetes Global Balancer ☆1,058
  • lesismal/arpc — More effective network communication, two-way calling, notify and broadcast supported. ☆1,066
  • cenkalti/rain — BitTorrent client and library in Go ☆1,050
  • trpc-group/trpc-go — A pluggable, high-performance RPC framework written in golang ☆992
  • etcd-io/raft — Raft library for maintaining a replicated state machine ☆880
  • temporalio/sdk-go — Temporal Go SDK ☆671
  • AppsFlyer/go-sundheit — A library built to provide support for defining service health for golang services. It allows you to register async health checks for your dependencies and the service itself, provides a health endpoint that exposes their status, and health metrics. ☆557
  • ybbus/jsonrpc — A simple go implementation of json rpc 2.0 client over http ☆354
  • anacrolix/dht — dht is used by anacrolix/torrent, and is intended for use as a library in other projects both torrent related and otherwise ☆333
  • tarmac-project/tarmac — Write as Functions, Deploy as a Monolith or Microservice with WebAssembly ☆335
  • osamingo/jsonrpc — The jsonrpc package helps implement of JSON-RPC 2.0 ☆188
  • italolelis/outboxer — A library that implements the outboxer pattern in go ☆163
  • capillariesio/capillaries — Distributed batch data processing framework ☆67
  • svcavallar/celeriac.v1 — Golang client library for adding support for interacting and monitoring Celery workers, tasks and events. ☆73
  • sanketplus/go-mysql-lock — MySQL Backed Locking Primitive ☆64
  • vadiminshakov/committer — Two-phase (2PC) and three-phase (3PC) protocols implementaion in Golang ☆38
  • pdupub/go-pdu — An PDU implementation in Go ☆48
  • gmsec/micro — A Go distributed systems development framework ☆25
  • mbrostami/consistenthash — A Go library that implements Consistent Hashing (+Block Partitioning) ☆27

Dynamic DNS

  • TimothyYe/godns — A dynamic DNS client tool that supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go. ☆1,596
  • skibish/ddns — Personal DDNS client with Digital Ocean Networking DNS as backend. ☆263

Editor Plugins

Email

  • axllent/mailpit — An email and SMTP testing tool with API for developers ☆7,377
  • foxcpp/maddy — Composable all-in-one mail server. ☆5,605
  • mjl-/mox — modern full-featured open source secure mail server for low-maintenance self-hosted email ☆5,100
  • matcornic/hermes — Golang package that generates clean, responsive HTML e-mails for sending transactional mail ☆2,910
  • AfterShip/email-verifier — A Go library for email verification without sending any emails. ☆1,412
  • sendgrid/sendgrid-go — The Official Twilio SendGrid Golang API Library ☆1,022
  • wneessen/go-mail — Easy to use, yet comprehensive library for sending mails with Go ☆1,046
  • mailgun/mailgun-go — Go library for sending mail with the Mailgun API. ☆733
  • xhit/go-simple-mail — Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP. ☆678
  • emersion/go-message — A streaming Go library for the Internet Message Format and mail messages ☆419
  • vanng822/go-premailer — Inline styling for html mail in golang ☆171
  • mocktools/go-smtp-mock — SMTP mock server written on Golang. Mimic any SMTP server behavior for your test environment with fake SMTP server. ☆152
  • truemail-rb/truemail-go — Configurable Golang email validator/verifier. Verify email via Regex, DNS, SMTP and even more. Be sure that email address valid and exists. ☆122
  • toorop/go-dkim — DKIM package for golang ☆97
  • dimuska139/go-email-normalizer — Golang library for providing a canonical representation of email address. ☆72
  • valord577/mailx — A library that makes it easier to send email via SMTP. ☆19

Embeddable Scripting Languages

  • php/frankenphp — The modern PHP app server ☆9,737
  • expr-lang/expr — Expression language and expression evaluation for Go ☆7,031
  • yuin/gopher-lua — GopherLua: VM and compiler for Lua in Go ☆6,660
  • dop251/goja — ECMAScript/JavaScript engine in pure Go ☆6,290
  • d5/tengo — A fast script language for Go ☆3,669
  • Shopify/go-lua — A Lua VM in Go ☆3,303
  • google/cel-go — Fast, portable, non-Turing complete expression evaluation with gradual typing (Go) ☆2,614
  • google/starlark-go — Starlark in Go: the Starlark configuration language, implemented in Go ☆2,504
  • metacall/core — MetaCall: The ultimate polyglot programming experience. ☆1,669
  • wa-lang/wa — The Wa Programming Language ☆1,598
  • mattn/anko — Scriptable interpreter written in golang ☆1,527
  • PaesslerAG/gval — Expression evaluation in golang ☆794
  • aarzilli/golua — Go bindings for Lua C API - in progress ☆674
  • ichiban/prolog — The only reasonable scripting engine for Go. ☆676
  • 1set/starlet — Yet another Go wrapper for Starlark that simplifies usage, offers data conversion and useful Starlark libraries ☆31

Error Handling

  • hashicorp/go-multierror — A Go (golang) package for representing a list of errors as a single error. ☆2,473
  • cockroachdb/errors — Go error library with error portability over the network ☆2,250
  • rotisserie/eris — Error handling library with readable stack traces and flexible formatting support ☆1,684
  • joomcode/errorx — A comprehensive error handling library for Go ☆1,257
  • ztrue/tracerr — Golang errors with stack trace and source fragments. ☆1,092
  • samber/oops — Error handling library with context, assertion, stack trace and source fragments ☆712
  • Southclaws/fault — Go errors but structured and composable. Fault provides an extensible yet ergonomic mechanism for wrapping errors. ☆284

File Handling

  • pdfcpu/pdfcpu — A PDF processor written in Go. ☆7,814
  • spf13/afero — A FileSystem Abstraction System for Go ☆6,268
  • dundee/gdu — Fast disk usage analyzer with console interface written in Go ☆4,615
  • SebastiaanKlippert/go-wkhtmltopdf — Golang commandline wrapper for wkhtmltopdf ☆1,132
  • otiai10/copy — Go copy directory recursively ☆761
  • no-src/gofs — A cross-platform real-time file synchronization tool out of the box based on Golang ☆511
  • C2FO/vfs — Pluggable, extensible virtual file system for Go ☆345
  • viant/afs — Abstract File Storage ☆338
  • kdomanski/iso9660 — A go library for reading and creating ISO9660 images ☆275
  • barasher/go-exiftool — Golang wrapper for Exiftool : extract as much metadata as possible (EXIF, ...) from files (pictures, pdf, office documents, ...) ☆269
  • artonge/go-csv-tag — Read csv file from go using tags ☆126
  • parsyl/parquet — A library for reading and writing parquet files. ☆118
  • codingsince1985/checksum — Compute message digest for large files in Go ☆110
  • qmuntal/opc — Go implementation of the Open Packaging Conventions (OPC) ☆75
  • adelowo/gulter — Golang middleware for handling multipart/form-data and uploading files ☆65
  • artonge/go-gtfs — Load GTFS files in golang ☆48
  • 1set/todotxt — Parser for todo.txt files in Go ☆25

Financial

  • shopspring/decimal — Arbitrary-precision fixed-point decimal numbers in Go ☆6,853
  • achannarasappa/ticker — Track stocks, crypto, and derivatives prices and positions in real time from your terminal ☆5,341
  • Rhymond/go-money — Go implementation of Fowler's Money pattern ☆1,782
  • c9s/bbgo — The modern cryptocurrency trading bot framework written in Go. ☆1,383
  • formancehq/ledger — The programmable open source ledger for fintechs ☆991
  • bojanz/currency — Currency handling for Go. ☆596
  • moov-io/ach — ACH implements a reader, writer, and validator for Automated Clearing House (ACH) files. The HTTP server is available in a Docker image and the Go package is available. ☆496
  • govalues/decimal — Correctly rounded decimals for Go ☆176
  • quagmt/udecimal — A high-performance, high precision, zero allocation fixed-point decimal library for financial applications ☆149
  • claygod/transaction — Embedded database for accounts transactions. ☆136
  • dannyvankooten/vat — Go package for dealing with EU VAT. Does VAT number validation & rates retrieval. ☆115
  • jovandeginste/payme — QR code generator (ASCII & PNG) for SEPA payments ☆88
  • nikolaydubina/fpmoney — Fixed-Point Decimal Money ☆34
  • govalues/money — Correctly rounded monetary amounts and exchange rates for Go ☆38
  • nikolaydubina/fpdecimal — Fixed-Point Decimals ☆32

Forms

  • justinas/nosurf — CSRF protection middleware for Go. ☆1,682
  • gorilla/csrf — Package gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention middleware for Go web applications & services ☆1,132
  • go-playground/form — Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support. ☆851
  • ggicci/httpin — HTTP Input for Go - HTTP Request from/to Go Struct (Bi-directional Data Binding between Go Struct and http.Request) ☆365
  • sonh/qs — Go module for encoding structs into URL query parameters ☆78
  • cinar/checker — Effortless input validation in Go with the power of struct tags. No dependencies, just pure simplicity. See how! ☆44

Functional

  • samber/mo — Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...) ☆3,028
  • BooleanCat/go-functional — go-functional is a library of iterators to augment the standard library ☆508
  • seborama/fuego — Functional Experiment in Golang ☆146
  • rjNemo/underscore — Useful functional programming helpers for Go ☆117

Game Development

  • hajimehoshi/ebiten — Ebitengine - A dead simple 2D game engine for Go ☆12,246
  • xiaonanln/goworld — Scalable Distributed Game Server Engine with Hot Swapping in Golang ☆2,658
  • topfreegames/pitaya — Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. ☆2,584
  • gen2brain/raylib-go — Go bindings for raylib, a simple and easy-to-use library to enjoy videogames programming. ☆2,105
  • EngoEngine/engo — Engo is an open-source 2D game engine written in Go. ☆1,802
  • oakmound/oak — A pure Go game engine ☆1,633
  • JoelOtter/termloop — Terminal-based game engine for Go, built on top of Termbox ☆1,459
  • xtaci/gonet — A Game Server Skeleton in golang. ☆1,285
  • harfang3d/harfang3d — HARFANG 3D source code public repository ☆620
  • gopxl/pixel — A hand-crafted 2D game library in Go. ☆338
  • ungerik/go3d — A performance oriented 2D/3D math package for Go ☆324
  • kelindar/tile — Tile is a 2D grid engine, built with data and cache friendly ways, includes pathfinding and observers. ☆198
  • andygeiss/ecs — Build your own Game-Engine based on the Entity Component System concept in Golang. ☆147
  • gonutz/prototype — Simple 2D game prototyping framework targetting Windows, Mac, Linux, WASM. ☆91
  • mlange-42/ark — Ark -- Archetype-based Entity Component System (ECS) for Go. ☆91
  • s0rg/fantasyname — RinkWorks fantasy name generator for golang ☆36
  • s0rg/grid — Generic 2D grid ☆21

Generators

  • oapi-codegen/oapi-codegen — Generate Go client and server boilerplate from OpenAPI 3 specifications ☆7,371
  • dave/jennifer — Jennifer is a code generator for Go ☆3,521
  • awalterschulze/goderive — Derives and generates mundane golang functions that you do not want to maintain yourself ☆1,264
  • hexdigest/gowrap — GoWrap is a command line tool for generating decorators for Go interfaces ☆1,234
  • abice/go-enum — An enum generator for go ☆845
  • jmattheis/goverter — Generate type-safe Go converters by defining function signatures. ☆723
  • rjeczalik/interfaces — Code generation tools for Go. ☆431
  • switchupcb/copygen — Copygen generates code based on Go types. Generate type-based code to copy values from type to type and fields from struct to struct by default (copier without reflection). ☆393
  • reedom/convergen — A type-to-type copy function code generator. ☆48

Geographic

  • tidwall/tile38 — Real-time Geospatial and Geofencing ☆9,382
  • golang/geo — S2 geometry library in Go ☆1,765
  • consbio/mbtileserver — Basic Go server for mbtiles ☆737
  • spatial-go/geoos — A library provides spatial data and geometric algorithms ☆523
  • paulmach/osm — General purpose library for reading, writing and working with OpenStreetMap data ☆412
  • uber/h3-go — Go bindings for H3, a hierarchical hexagonal geospatial indexing system ☆355
  • airbusgeo/godal — golang wrapper for github.com/OSGEO/gdal ☆166
  • peterstace/simplefeatures — Simple Features is a pure Go Implementation of the OpenGIS Simple Feature Access Specification ☆150
  • wroge/wgs84 — A zero-dependency Go package for coordinate transformations. ☆139
  • pantrif/s2-geojson — Draw a polygon on the map or paste a geoJSON and explore how the s2.RegionCoverer covers it with S2 cells depending on the min and max levels ☆35

Go Compilers

Go Generate Tools

  • xuri/xgen — XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator ☆376
  • kazhuravlev/options-gen — Codegen for functional options in go projects ☆95
  • g4s8/envdoc — Go tool to generate documentation for environment variables ☆86

Go Tools

  • go-swagger/go-swagger — Swagger 2.0 implementation for go ☆9,807
  • ondrajz/go-callvis — Visualize call graph of a Go program using Graphviz ☆6,323
  • Zxilly/go-size-analyzer — A tool for analyzing the size of compiled Go binaries, offering cross-platform support, detailed breakdowns, and multiple output formats. ☆1,634
  • safedep/vet — Next Generation Software Composition Analysis (SCA) with Malicious Package Detection, Code Context & Policy as Code ☆542
  • iyashjayesh/monigo — MoniGo is a performance monitoring library for Go apps, offering real-time insights into service-level and function-level metrics. With an intuitive UI, it enables developers to track and optimize performance. Get your Go app's dashboard up in just 10 seconds! ☆274
  • becheran/roumon — Universal goroutine monitor using pprof and termui ☆220
  • dtgorski/typex — [TOOL/CLI] - Filter and examine Go type structures, interfaces and their transitive dependencies and relationships. Export structural types as TypeScript value object or bare type representations. ☆205
  • bitfield/gotestdox — A tool for formatting Go test results as readable documentation ☆146
  • bobg/decouple — find overspecified function parameters in Go code ☆31
  • dustinblackman/gomodrun — The forgotten go tool that executes and caches binaries included in go.mod files. ☆38
  • bobg/modver — a tool that helps you obey semantic versioning rules in your Go module ☆21

Goroutines

  • panjf2000/ants — ants is the most powerful and reliable pooling solution for Go. ☆13,837
  • benmanns/goworker — goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers. ☆2,833
  • alitto/pond — Minimalistic and High-performance goroutine worker pool written in Go ☆1,896
  • destel/rill — Go toolkit for clean, composable, channel-based concurrency ☆1,688
  • xxjwxc/gowp — golang worker pool , Concurrency limiting goroutine pool ☆526
  • earthboundkid/flowmatic — Structured concurrency made easy ☆388
  • timandy/routine — ThreadLocal for Golang. ☆268
  • reugn/async — Synchronization and asynchronous computation package for Go ☆250
  • vladopajic/go-actor — A lightweight library for writing concurrent programs in Go using the Actor model. ☆234
  • mborders/artifex — Simple in-memory job queue for Golang using worker-based dispatching ☆212
  • hmdsefi/gowl — Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status. ☆70
  • loveleshsharma/gohive — A Highly Performant and easy to use goroutine pool for Go ☆53

GUI

  • fyne-io/fyne — Cross platform GUI toolkit in Go inspired by Material Design ☆26,787
  • webview/webview — Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows). ☆13,235
  • therecipe/qt — Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly ☆10,694
  • go-vgo/robotgo — RobotGo, Go Native cross-platform RPA and GUI automation @vcaesar ☆10,271
  • maxence-charriere/go-app — A package to build progressive web apps with Go programming language and WebAssembly. ☆8,727
  • lxn/walk — A Windows GUI toolkit for the Go Programming Language ☆6,987
  • progrium/darwinkit — Native Mac APIs for Go. Previously known as MacDriver ☆5,283
  • getlantern/systray — a cross platfrom Go library to place an icon and menu in the notification area ☆3,516
  • gotk3/gotk3 — Go bindings for GTK3 ☆2,174
  • cogentcore/core — A free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and web with a single Go codebase, allowing you to Code Once, Run Everywhere. ☆2,043
  • roblillack/spot — React-like desktop GUI toolkit for Go ☆1,229
  • ncruces/zenity — Zenity dialogs for Golang, Windows, macOS ☆822
  • energye/energy — Energy is a framework developed by Go language based on CEF (Chromium Embedded Framework) for developing cross-platform desktop applications for Windows, Mac OS X, and Linux ☆488
  • AllenDang/cimgui-go — Auto generated Go wrapper for Dear ImGui via cimgui ☆427
  • richardwilkes/unison — A unified graphical user experience toolkit for Go desktop applications ☆272
  • shurcooL/trayhost — Cross-platform Go library to place an icon in the host operating system's taskbar. ☆256
  • prashantgupta24/activity-tracker — A library to notify about any (pluggable) activity on your machine, and let you take action as needed ☆31

Hardware

  • arduino/arduino-cli — Arduino command line tool ☆4,602
  • jaypipes/ghw — Go HardWare discovery/inspection library ☆1,763
  • zcalusic/sysinfo — Sysinfo is a Go library providing Linux OS / kernel / hardware system information. ☆551

Images

IoT (Internet of Things)

  • hybridgroup/gobot — Golang framework for robotics, drones, and the Internet of Things (IoT) ☆9,223
  • lf-edge/ekuiper — Lightweight data stream processing engine for IoT edge ☆1,615
  • Edgenesis/shifu — Kubernetes-native IoT gateway ☆1,357
  • rulego/rulego — RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go. ☆1,204
  • e154/smart-home — software package for automation ☆92

Job Scheduler

  • go-co-op/gocron — Easy and fluent Go cron scheduling ☆6,380
  • reugn/go-quartz — Minimalist and zero-dependency scheduling library for Go ☆1,896
  • adhocore/gronx — Lightweight, fast and dependency-free Cron expression parser (due checker, next/prev due date finder), task runner, job scheduler and/or daemon for Golang (tested on v1.13+) and standalone usage. If you are bold, use it to replace crontab entirely. ☆456
  • fieldryand/goflow — Simple but powerful DAG scheduler and dashboard ☆442
  • madflojo/tasks — Package tasks is an easy to use in-process scheduler for recurring tasks in Go ☆314
  • bart6114/cheek — cheek: a pico-sized declarative job scheduler ☆192
  • onatm/clockwerk — Job Scheduling Library ☆181
  • deepaksinghvi/cdule — cdule (pronounce as Schedule) Golang based scheduler library with database support. ☆55
  • romshark/sched — A job scheduler for Go with the ability to fast-forward time. ☆28

JSON

  • tidwall/gjson — Get JSON values quickly - JSON parser for Go ☆15,063
  • Jeffail/gabs — For parsing, creating and editing unknown or dynamic JSON in Go ☆3,513
  • valyala/fastjson — Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection ☆2,389
  • ohler55/ojg — Optimized JSON for Go ☆904
  • wI2L/jsondiff — Compute the diff between two JSON documents as a series of RFC6902 (JSON Patch) operations ☆590
  • spyzhov/ajson — Abstract JSON for Golang with JSONPath support ☆276
  • Andrew-M-C/go.jsonvalue — Quick Solution with Unstructured JSON data ☆197
  • romshark/jscan — High performance JSON iterator & validator for Go ☆95
  • iOliverNguyen/ujson — µjson - A fast and minimal JSON parser and transformer that works on unstructured JSON ☆82
  • simonnilsson/ask — A Go package that provides a simple way of accessing nested properties in maps and slices. ☆53
  • neilotoole/jsoncolor — Colorized JSON output for Go ☆47
  • ake-persson/mapslice-json — Go MapSlice for ordered marshal/ unmarshal of maps in JSON ☆20
  • vtopc/epoch — Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from built-in time.Time type in JSON ☆16

Logging

  • sirupsen/logrus — Structured, pluggable logging for Go. ☆25,390
  • uber-go/zap — Blazing fast, structured, leveled logging in Go. ☆23,378
  • rs/zerolog — Zero Allocation JSON Logger ☆11,622
  • davecgh/go-spew — Implements a deep pretty printer for Go data structures to aid in debugging ☆6,272
  • golang/glog — Leveled execution logs for Go ☆3,604
  • k0kubun/pp — Colored pretty printer for Go language ☆1,966
  • apex/log — Structured logging package for Go. ☆1,370
  • lmittmann/tint — slog.Handler that writes tinted (colorized) logs ☆1,048
  • getsentry/sentry-go — The official Go SDK for Sentry (sentry.io) ☆978
  • phuslu/log — Fastest structured logging ☆781
  • Lifailon/lazyjournal — A TUI for reading logs from journald, auditd, file system, Docker containers, Podman and Kubernetes pods for quick viewing, coloring output and filtering with fuzzy find, regex support and timestamp. ☆604
  • samber/slog-multi — Design workflows of slog handlers: pipeline, middleware, fanout, routing, failover, load balancing... ☆502
  • gookit/slog — Lightweight, configurable, extensible logging library written in Go ☆486
  • henvic/httpretty — Package httpretty prints the HTTP requests you make with Go pretty on your terminal. ☆408
  • hashicorp/logutils — Utilities for slightly better logging in Go (Golang). ☆367
  • simukti/sqldb-logger — A logger for Go SQL database driver without modifying existing *sql.DB stdlib usage. ☆377
  • go-playground/log — Simple, configurable and scalable Structured Logging for Go. ☆295
  • samber/slog-formatter — slog: Attribute formatting ☆178
  • rs/xlog — xlog is a logger for net/context aware HTTP applications ☆139
  • yuseferi/zax — Golang Zap logger with context ☆27
  • clok/kemba — A tiny debug logging tool. Ideal for CLI tools and command applications ☆16

Machine Learning

Messaging

  • IBM/sarama — Sarama is a Go library for Apache Kafka. ☆12,106
  • hibiken/asynq — Simple, reliable, and efficient distributed task queue in Go ☆11,606
  • centrifugal/centrifugo — Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever. ☆9,143
  • ThreeDotsLabs/watermill — Building event-driven applications the easy way in Go. ☆8,683
  • appleboy/gorush — A push notification server written in Go (Golang). ☆8,435
  • RichardKnop/machinery — Machinery is an asynchronous task queue/job queue based on distributed message passing. ☆7,786
  • nats-io/nats.go — Golang client for NATS, the cloud native messaging system. ☆6,027
  • confluentinc/confluent-kafka-go — Confluent's Apache Kafka Golang client ☆4,947
  • dunglas/mercure — An open, easy, fast, reliable and battery-efficient solution for real-time communications ☆4,992
  • olahol/melody — Minimalist websocket framework for Go ☆3,949
  • sideshow/apns2 — HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol. ☆3,099
  • lovoo/goka — Goka is a compact yet powerful distributed stream processing library for Apache Kafka written in Go. ☆2,461
  • asaskevich/EventBus — [Go] Lightweight eventbus with async compatibility for Go ☆1,891
  • rabbitmq/amqp091-go — An AMQP 0-9-1 Go client maintained by the RabbitMQ team ☆1,815
  • pebbe/zmq4 — A Go interface to ZeroMQ version 4 ☆1,214
  • jcuga/golongpoll — golang long polling library. Makes web pub-sub easy via HTTP long-poll servers and clients ☆663
  • timbray/quamina — Home of Quamina, a fast pattern-matching library in Go ☆432
  • cskr/pubsub — A simple pubsub package for go. ☆439
  • jandelgado/rabtap — RabbitMQ wire tap and swiss army knife ☆270
  • mehdihadeli/Go-MediatR — A library for handling mediator patterns and simplified CQRS patterns within an event-driven architecture, inspired by csharp MediatR library. ☆247
  • hyperonym/ratus — Ratus is a RESTful asynchronous task queue server. It translated concepts of distributed task queues into a set of resources that conform to REST principles and provides a consistent HTTP API for various backends. ☆122
  • robinjoseph08/redisqueue — redisqueue provides a producer and consumer of a queue that uses Redis streams ☆134
  • dailymotion/oplog — A generic oplog/replication system for microservices ☆110
  • furdarius/rabbitroutine — Lightweight library that handles RabbitMQ auto-reconnect and publishing retry routine for you. ☆112
  • oagudo/outbox — Lightweight library for the transactional outbox pattern in Go, not tied to any specific relational database or broker. ☆78
  • jirenius/go-res — RES Service protocol library for Go ☆66
  • SchwarzIT/hypermatch — hypermatch is a high-performance Go library designed for rapid matching of a large number of rules to events. It processes thousands of events per second against extensive rule sets in-memory with minimal latency . ☆28
  • maxatome/go-vitotrol — golang client library to Viessmann Vitotrol web service ☆23

Microsoft Office

  • unidoc/unioffice — Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents ☆4,625

Microsoft Excel

  • qax-os/excelize — Go language library for reading and writing Microsoft Excel (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets ☆19,386
  • tealeg/xlsx — Go library for reading and writing XLSX files. ☆5,987
  • go-the-way/exl — Excel binding to struct written in Go.(Only supports Go1.18+) ☆32

Microsoft Word

  • gomutex/godocx — Go library for reading and writing Microsoft Docx ☆190

Middlewares

  • urfave/negroni — Idiomatic HTTP Middleware for Golang ☆7,534
  • justinas/alice — Painless middleware chaining for Go ☆3,275
  • didip/tollbooth — Simple middleware to rate-limit HTTP requests. ☆2,806
  • rs/cors — Go net/http configurable handler to handle CORS requests ☆2,795
  • unrolled/render — Go package for easily rendering JSON, XML, binary data, and HTML templates responses. ☆1,968
  • lingrino/go-fault — fault injection library in go using standard http middleware ☆509
  • jub0bs/cors — perhaps the best CORS middleware library for Go ☆99
  • rookie-ninja/rk-grpc — Start gRPC microservice from YAML, plugin of rk-boot ☆77
  • rookie-ninja/rk-gin — Start gin microservice from YAML, plugin of rk-boot ☆50
  • faabiosr/echo-middleware — Go package that provides multiple middlewares for Echo Framework. ☆16

Miscellaneous

Dependency Injection

  • google/wire — Compile-time Dependency Injection for Go ☆13,961
  • uber-go/fx — A dependency injection based application framework for Go. ☆6,677
  • uber-go/dig — A reflection based dependency injection toolkit for Go. ☆4,227
  • goioc/di — Simple and yet powerful Dependency Injection for Go ☆365
  • d3fvxl/di — A full-featured dependency injection container for go programming language. ☆238
  • i-love-flamingo/dingo — Go Dependency Injection Framework ☆185
  • go-kod/kod — A generics based dependency injection application framework for Go, supporting aspect oriented programming based on interceptors ☆185
  • NVIDIA/gontainer — Dependency Injection container for Golang projects. ☆49
  • matzefriedrich/parsley — An easy-to-use reflection-based dependency injection package that fits into any Go application. ☆30
  • muir/nject — Golang type-safe dependency injection ☆30
  • logrange/linker — Dependency Injection and Inversion of Control package ☆35
  • componego/componego — The most flexible component-oriented framework for GoLang applications ☆28
  • firasdarwish/ore — Advanced Dependency Injection Solution for Go ☆23
  • gontainer/gontainer — YAML-based Dependency Injection container for GO ☆16

Project Layout

Strings

  • huandu/xstrings — Implements string functions widely used in other languages but absent in Go. ☆1,409
  • abhimanyu003/sttr — cross-platform, cli app to perform various operations on string ☆1,143
  • gobeam/stringy — Convert string to camel case, snake case, kebab case / slugify, custom delimiter, pad string, tease string and many other functionalities with help of by Stringy package. ☆250
  • ozgio/strutil — String utilities for Go ☆207

Uncategorized

  • shirou/gopsutil — psutil for golang ☆11,316
  • TwiN/gatus — Automated developer-oriented status page ☆7,733
  • brianvoe/gofakeit — Random fake data generator written in go ☆5,039
  • mojocn/base64Captcha — captcha of base64 image string ☆2,265
  • eapache/go-resiliency — Resiliency patterns for golang ☆2,300
  • containrrr/shoutrrr — Notification library for gophers and their furry friends. ☆1,292
  • qmuntal/stateless — Go library for creating finite state machines ☆1,082
  • alexliesenfeld/health — A simple and flexible health check library for Go. ☆814
  • ulikunitz/xz — Pure golang package for reading and writing xz-compressed files ☆518
  • dimiro1/health — An easy to use, extensible health check library for Go applications. ☆450
  • ddddddO/gtree — Using either Markdown or Programmatically to generate trees and directories, and to verify directories. Provide CLI, Go package and Web. ☆302
  • gen2brain/go-unarr — Go bindings for unarr (decompression library for RAR, TAR, ZIP and 7z archives) ☆296
  • mholt/archives — Cross-platform library to create & extract archives, compress & decompress files, and walk virtual file systems across various formats ☆268
  • distatus/battery — cross-platform, normalized battery information library ☆262
  • steambap/captcha — Package captcha provides an easy to use, unopinionated API for captcha generation ☆159
  • antham/gommit — Enforce git message commit consistency ☆115
  • osamingo/indigo — A distributed unique ID generator of using Sonyflake and encoded by Base58 ☆111
  • pioz/faker — Random fake data and struct generator for Go. ☆99
  • aofei/sandid — Every grain of sand on Earth has its own ID. ☆47
  • rkoesters/xdg — FreeDesktop.org (xdg) Specs implemented in Go ☆48
  • osamingo/gosh — Provide Go Statistics Handler, Struct, Measure Method ☆35
  • lrita/numa — NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. ☆35

Natural Language Processing

Language Detection

  • pemistahl/lingua-go — The most accurate natural language detection library for Go, suitable for short text and mixed-language text ☆1,261

Morphological Analyzers

  • nlpodyssey/spago — Self-contained Machine Learning and Natural Language Processing library in Go ☆1,811
  • ikawaha/kagome — Self-contained Japanese Morphological Analyzer written in pure Go ☆887
  • afjoseph/RAKE.Go — A Go port of the Rapid Automatic Keyword Extraction algorithm (RAKE) ☆120
  • jonreiter/govader — vader sentiment analysis in go ☆50

Slugifiers

  • gosimple/slug — URL-friendly slugify with multiple languages support. ☆1,265

Tokenizers

  • go-ego/gse — Go efficient multilingual NLP and text segmentation; support English, Chinese, Japanese and others. ☆2,683
  • pebbe/textcat — A Go package for n-gram based text categorization, with support for utf-8 and raw text ☆73

Translation

  • nicksnyder/go-i18n — Translate your Go program into multiple languages. ☆3,298
  • leonelquinteros/gotext — Go (Golang) GNU gettext utilities package ☆473
  • invopop/ctxi18n — Go Context Internationalization - translating apps easily ☆73
  • vorlif/spreak — Flexible translation and humanization library for Go, based on the concepts behind gettext. ☆64
  • mehanizm/iuliia-go — Transliterate Cyrillic → Latin in every possible way ☆54
  • youthlin/t — t: translation util for go, using GNU gettext ☆20

Transliteration

Networking

  • valyala/fasthttp — Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http ☆22,749
  • pion/webrtc — Pure Go implementation of the WebRTC API ☆15,078
  • xtaci/kcptun — A Quantum-Safe Secure Tunnel based on QPP, KCP, FEC, and N:M multiplexing. ☆14,184
  • cloudflare/cloudflared — Cloudflare Tunnel client (formerly Argo Tunnel) ☆11,057
  • quic-go/quic-go — A QUIC implementation in pure Go ☆10,828
  • panjf2000/gnet — gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. ☆10,657
  • miekg/dns — DNS library in Go ☆8,425
  • google/gopacket — Provides packet processing capabilities for Go ☆6,570
  • elazarl/goproxy — An HTTP proxy library for Go ☆6,413
  • cloudwego/netpoll — A high-performance non-blocking I/O networking framework focusing on RPC scenarios. ☆4,362
  • xtaci/kcp-go — A Crypto-Secure Reliable-UDP Library for golang with FEC ☆4,288
  • xjasonlyu/tun2socks — tun2socks - powered by gVisor TCP/IP stack ☆4,010
  • gliderlabs/ssh — Easy SSH servers in Golang ☆3,946
  • osrg/gobgp — BGP implemented in the Go Programming Language ☆3,833
  • fortio/fortio — Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats. ☆3,565
  • lesismal/nbio — Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. ☆2,545
  • songgao/water — A simple TUN/TAP library written in native Go. ☆2,058
  • Allenxuxu/gev — Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers. ☆1,758
  • hashicorp/go-getter — Package for downloading things from a string URL using a variety of protocols. ☆1,713
  • pkg/sftp — SFTP support for the go.crypto/ssh package ☆1,591
  • lxzan/gws — simple, fast, reliable websocket server & client, supports running over tcp/kcp/unix domain socket. keywords: ws, proxy, chat, go, golang... ☆1,571
  • cavaliergopher/grab — A download manager package for Go ☆1,449
  • hashicorp/mdns — Simple mDNS client/server library in Golang ☆1,277
  • gosnmp/gosnmp — An SNMP library written in Go ☆1,202
  • yosebyte/nodepass — A secure, efficient TCP/UDP tunneling solution that delivers fast, reliable access across network restrictions using pre-established TLS/TCP connections ☆1,150
  • DrmagicE/gmqtt — Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang ☆1,010
  • semihalev/sdns — A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy. ☆1,000
  • yahoo/vssh — Go Library to Execute Commands Over SSH at Scale ☆973
  • DarthPestilane/easytcp — EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. ☆823
  • xtaci/gaio — High performance minimalism async-io(proactor) networking for Golang. ☆795
  • ccding/go-stun — A go implementation of the STUN client (RFC 3489 and RFC 5389) ☆709
  • schollz/peerdiscovery — Pure-Go library for cross-platform local peer discovery using UDP multicast ☆660
  • gansidui/gotcp — A Go package for quickly building tcp servers ☆514
  • fclairamb/ftpserverlib — golang ftp server library ☆451
  • masterzen/winrm — Command-line tool and library for Windows remote command execution in Go ☆445
  • mosajjal/dnsmonster — Passive DNS Capture and Monitoring Toolkit ☆333
  • google/gnxi — gNXI Tools - gRPC Network Management/Operations Interface Tools ☆277
  • udhos/jazigo — Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet. ☆222
  • jeroenrinzema/psql-wire — PostgreSQL server wire protocol. Build your own server and start serving connections. ☆152
  • lim-yoona/tcpack — tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program. ☆170
  • eduardonunesp/sslb — Golang Super Simple Load Balance ☆151
  • c-robinson/iplib — A library for working with IP addresses and networks in Go ☆148
  • joeig/go-powerdns — PowerDNS API client for Go (community project) ☆97
  • cheng-zhongliang/event — Simple I/O event notification library wirtten in Golang ☆120
  • jimlambrt/gldap — Build LDAP services w/ Go ☆115
  • soypat/natiu-mqtt — A dead-simple, extensible MQTT implementation well suited for embedded systems. ☆97
  • gaissmai/bart — The Balanced Routing Table is an adaptation of D. Knuth's ART algorithm and requires significantly less memory and has an even better lookup speed. ☆78
  • shoriwe/fullproxy — Proxy toolkit including SOCKS5, HTTP, port forward and reverse base proxying ☆82
  • alegrey91/fwdctl — CLI tool to easily manage IPTables forwards ☆67
  • fish-tennis/gnet — high performance net library for game server ☆22
  • wzshiming/httpproxy — HTTP proxy handler and dialer ☆30

HTTP Clients

  • go-resty/resty — Simple HTTP, REST, and SSE client library for Go ☆11,060
  • imroc/req — Simple Go HTTP client with Black Magic ☆4,550
  • gojek/heimdall — An enhanced HTTP client for Go ☆2,684
  • hashicorp/go-retryablehttp — Retryable HTTP client in Go ☆2,160
  • levigross/grequests — A Go "clone" of the great and famous Requests library ☆2,160
  • dghubble/sling — A Go HTTP client library for creating and sending API requests ☆1,708
  • earthboundkid/requests — HTTP requests for Gophers ☆1,623
  • bogdanfinn/tls-client — net/http.Client like HTTP Client with options to select specific client TLS Fingerprints to use for requests. ☆1,198
  • Noooste/azuretls-client — An easy-to-use HTTP client to spoof TLS/JA3, HTTP2 and HTTP3 fingerprint ☆289
  • monaco-io/request — go request, go http client ☆292
  • NdoleStudio/go-otelroundtripper — Go http.RoundTripper that emits open telemetry metrics. This helps you easily get metrics for all external APIs you interact with. ☆85
  • go-zoox/fetch — Go Fetch - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API ☆79
  • opus-domini/fast-shot — Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client. ☆85
  • rezmoss/axios4go — A Go HTTP client library inspired by Axios, providing a simple and intuitive API for making HTTP requests with features like interceptors, JSON handling, configurable instances, and automatic retries ☆28

OpenGL

  • go-gl/glfw — Go bindings for GLFW 3 ☆1,632
  • go-gl/gl — Go bindings for OpenGL (generated via glow) ☆1,165
  • go-gl/mathgl — A pure Go 3D math library. ☆581

ORM

  • go-gorm/gorm — The fantastic ORM library for Golang, aims to be developer friendly ☆38,560
  • ent/ent — An entity framework for Go ☆16,376
  • aarondl/sqlboiler — Generate a Go ORM tailored to your database schema. ☆6,899
  • uptrace/bun — SQL-first Golang ORM ☆4,264
  • upper/db — Data Access Layer (DAL) for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features. ☆3,606
  • steebchen/prisma-client-go — Prisma Client Go is an auto-generated and fully type-safe database client ☆2,306
  • huandu/go-sqlbuilder — A flexible and powerful SQL string builder library plus a zero-config ORM. ☆1,571
  • stephenafamo/bob — SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite ☆1,369
  • go-rel/rel — Modern ORM for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API ☆783
  • hashicorp/go-dbw — A simple package that encapsulates database operations. ☆17
  • FrancoLiberali/cql — CQL: Compiled Query Language ☆17

Package Management

  • anchore/syft — CLI tool and library for generating a Software Bill of Materials from container images and filesystems ☆7,353
  • nao1215/gup — gup - Update binaries installed by "go install" with goroutines. ☆427

Performance

Query Language

  • 99designs/gqlgen — go generate based graphql server library ☆10,411
  • TomWright/dasel — Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package. ☆7,504
  • graph-gophers/graphql-go — GraphQL server with a focus on ease of use ☆4,709
  • bhmj/jsonslice — json slicer ☆92
  • hashicorp/mql — Model Query Language (mql) is a query language for your database models. ☆64
  • timsolov/rest-query-parser — Query Parser for REST ☆85
  • ccbrown/api-fu — A collection of Go packages for creating robust GraphQL APIs ☆57
  • AsaiYusuke/jsonpath — A query library for retrieving part of JSON based on JSONPath syntax. ☆27

Reflection

Resource Embedding

  • shurcooL/vfsgen — Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it. ☆982

Routers

  • gorilla/mux — Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with ☆21,480
  • go-chi/chi — lightweight, idiomatic and composable router for building Go HTTP services ☆20,169
  • gowww/router — A lightning fast HTTP router ☆185
  • gernest/alien — A lightweight and fast http router from outer space ☆134
  • bmf-san/goblin — A golang http router based on trie tree. ☆80
  • ngamux/ngamux — Simple HTTP router for Go ☆71
  • muir/nchi — golang http router with elegance, speed, and flexibility ☆18

Science and Data Analysis

  • gonum/gonum — Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more ☆8,094
  • gonum/plot — A repository for plotting and visualizing data ☆2,880
  • nytlabs/streamtools — tools for working with streams of data ☆1,311
  • paulmach/orb — Types and utilities for working with 2d geometry in Golang ☆1,008
  • maddyblue/go-dsp — Digital Signal Processing for Go ☆883
  • bebop/poly — A Go package for engineering organisms. ☆708
  • go-hep/hep — hep is the mono repository holding all of go-hep.org/x/hep packages and tools ☆248
  • hmdsefi/gograph — A golang generic graph library that provides mathematical graph-theory and algorithms. ☆86
  • nikolaydubina/jsonl-graph — JSONL Graph Tools ☆75
  • ndabAP/assocentity — Package assocentity returns the mean distance from tokens to an entity and its synonyms ☆17
  • claygod/PiHex — PiHex Library, written in Go, generates a hexadecimal number sequence in the number Pi in the range from 0 to 10,000,000. ☆20
  • sgreben/piecewiselinear — tiny linear interpolation library for go ☆28

Security

  • FiloSottile/age — A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. ☆19,274
  • go-acme/lego — Let's Encrypt/ACME client and library written in Go ☆8,728
  • caddyserver/certmagic — Automatic HTTPS for any Go program: fully-managed TLS certificate issuance and renewal ☆5,278
  • Ullaakut/cameradar — Cameradar hacks its way into RTSP videosurveillance cameras ☆4,592
  • corazawaf/coraza — OWASP Coraza WAF is a golang modsecurity compatible web application firewall library ☆2,767
  • awnumar/memguard — Software sandbox for storage of sensitive information in memory. ☆2,643
  • unrolled/secure — HTTP middleware for Go that facilitates some quick security wins. ☆2,317
  • cossacklabs/themis — Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms. ☆1,925
  • cossacklabs/acra — Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL. ☆1,412
  • mariocandela/beelzebub — A secure low code honeypot framework, leveraging AI for System Virtualization. ☆1,289
  • dromara/dongle — A simple, semantic and developer-friendly golang crypto package ☆989
  • anatol/booster — Fast and secure initramfs generator ☆578
  • kevinburke/nacl — Pure Go implementation of the NaCL set of API's ☆548
  • ssh-vault/ssh-vault — encrypt/decrypt using ssh keys ☆472
  • hillu/go-yara — Go bindings for YARA ☆373
  • teler-sh/teler-waf — teler-waf is a Go HTTP middleware that protects local web services from OWASP Top 10 threats, known vulnerabilities, malicious actors, botnets, unwanted crawlers, and brute force attacks. ☆382
  • number571/go-peer — Library for developing secure, decentralized, anonymous and quantum-resistant networks in Go language ☆295
  • anatol/luks.go — Pure Golang library to manage LUKS partitions ☆91
  • zitadel/passwap — Package passwap provides a unified implementation between different password hashing algorithms. It allows for easy swapping between algorithms, using the same API for all of them. ☆67
  • tg123/go-htpasswd — Apache htpasswd Parser for Go. ☆44
  • adrianosela/sslmgr — A layer of abstraction the around acme/autocert certificate manager (Golang) ☆30
  • andskur/argon2-hashing — A light package for generating and comparing password hashing with argon2 in Go ☆23
  • rsjethani/secret — Prevent your secrets from leaking into logs, std* etc. ☆31
  • bitfield/qrand — Quantum randomness source using the ANU hardware QRNG ☆16

Serialization

  • golang/protobuf — Go support for Google's protocol buffers ☆9,981
  • ugorji/go — idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go] ☆1,899
  • jszwec/csvutil — csvutil provides fast and idiomatic mapping between CSV and Go (golang) values. ☆998
  • fxamacker/cbor — CBOR codec (RFC 8949, RFC 8742) with CBOR tags, Go struct tag options (toarray, keyasint, omitempty, omitzero), float64/32/16, big.Int, and fuzz tested. ☆898
  • ghostiam/binstruct — Golang binary decoder for mapping data into the structure ☆106
  • csweichel/bel — Generate TypeScript interfaces from Go structs/interfaces - useful for JSON RPC ☆44
  • o1egl/fwencoder — Fixed width file parser (encoder/decoder) in GO (golang) ☆27
  • tiendc/go-csvlib — High-level performant CSV encoding and decoding library ☆19

Server Applications

  • caddyserver/caddy — Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS ☆65,645
  • minio/minio — MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license. ☆53,885
  • etcd-io/etcd — Distributed reliable key-value store for the most critical data of a distributed system ☆49,857
  • pocketbase/pocketbase — Open Source realtime backend in 1 file ☆49,260
  • drakkan/sftpgo — Full-featured and highly configurable SFTP, HTTP/S, FTP/S and WebDAV server - S3, Google Cloud Storage, Azure Blob ☆10,709
  • roadrunner-server/roadrunner — High-performance PHP application server, process manager written in Go and powered with plugins ☆8,197
  • easegress-io/easegress — A Cloud Native traffic orchestration system ☆5,837
  • flipt-io/flipt — Enterprise-ready, Git native feature management solution ☆4,460
  • charmbracelet/wish — Make SSH apps, just like that! ☆4,226
  • getfider/fider — Open platform to collect and prioritize feedback ☆3,618
  • xyproto/algernon — Small self-contained pure-Go web server with Lua, Teal, Markdown, Ollama, HTTP/2, QUIC, Redis, SQLite and PostgreSQL support ++ ☆2,924
  • openflagr/flagr — Flagr is a feature flagging, A/B testing and dynamic configuration microservice ☆2,510
  • thomaspoignant/go-feature-flag — GO Feature Flag is a simple, complete and lightweight self-hosted feature flag solution 100% Open Source. ☆1,692
  • claceio/clace — Application server for deploying containerized web apps. Easily deploy internal tools across a team. ☆639
  • baalimago/wd-41 — Web-Development 41, a static web server with live-reload ☆149
  • blind-oracle/cortex-tenant — Prometheus remote write proxy that adds Cortex/Mimir tenant ID based on metric labels ☆125
  • rekby/lets-proxy2 — Reverse proxy with automatically obtains TLS certificates from Let's Encrypt ☆100

Software Packages

DevOps Tools

  • kubernetes/kubernetes — Production-Grade Container Scheduling and Management ☆116,411
  • moby/moby — The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems ☆70,106
  • traefik/traefik — The Cloud Native Application Proxy ☆55,619
  • go-gitea/gitea — Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD ☆49,636
  • kubernetes/minikube — Run Kubernetes locally ☆30,713
  • k3s-io/k3s — Lightweight Kubernetes ☆30,247
  • grafana/k6 — A modern load testing tool, using Go and JavaScript ☆28,295
  • tsenart/vegeta — HTTP load testing tool and library. It's over 9000! ☆24,390
  • hashicorp/packer — Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. ☆15,409
  • kubernetes-sigs/kind — Kubernetes IN Docker - local clusters for testing Kubernetes ☆14,333
  • kubeshark/kubeshark — The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters. Inspired by Wireshark, purposely built for Kubernetes ☆11,437
  • moovweb/gvm — Go Version Manager ☆11,096
  • flannel-io/flannel — flannel is a network fabric for containers, designed for Kubernetes ☆9,188
  • getanteon/anteon — Anteon (formerly Ddosify) - Effortless Kubernetes Monitoring and Performance Testing. Available on CLI, Self-Hosted, and Cloud ☆8,485
  • ko-build/ko — Build and deploy Go applications ☆8,070
  • kubevela/kubevela — The Modern Application Platform. ☆6,760
  • bitfield/script — Making it easy to write shell-like scripts in Go ☆6,776
  • codesenberg/bombardier — Fast cross-platform HTTP benchmarking tool written in Go ☆6,433
  • stefanprodan/podinfo — Go microservice template for Kubernetes ☆5,659
  • k3d-io/k3d — Little helper to run CNCF's k3s in Docker ☆5,919
  • fleetdm/fleet — Open device management ☆5,269
  • gaia-pipeline/gaia — Build powerful pipelines in any programming language. ☆5,228
  • pomerium/pomerium — Pomerium is an identity and context-aware access proxy. ☆4,349
  • taubyte/tau — Open source distributed Platform as a Service (PaaS). A self-hosted Vercel / Netlify / Cloudflare alternative. ☆4,060
  • peak/s5cmd — Parallel S3 and local filesystem execution tool. ☆3,455
  • apecloud/kubeblocks — KubeBlocks is an open-source control plane software that runs and manages databases, message queues and other stateful applications on K8s. ☆2,765
  • aptly-dev/aptly — aptly - Debian repository management tool ☆2,676
  • ajvb/kala — Modern Job Scheduler ☆2,155
  • gabrie30/ghorg — Quickly clone or backup an entire org/users repositories into one directory - Supports GitHub, GitLab, Bitbucket, and more ☆1,777
  • sanbornm/go-selfupdate — Enable your Go applications to self update ☆1,621
  • yusufcanb/tlm — Local CLI Copilot, powered by Ollama. ☆1,439
  • ovh/utask — µTask is an automation engine that models and executes business processes declared in yaml. ☆1,295
  • pipe-cd/pipecd — The One CD for All {applications, platforms, operations} ☆1,200
  • kubenetworks/kubevpn — KubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network. ☆1,183
  • KusionStack/kusion — Declarative Intent Driven Platform Orchestrator for Internal Developer Platform (IDP). ☆1,148
  • abahmed/kwatch — monitor & detect crashes in your Kubernetes(K8s) cluster instantly ☆984
  • TimothyYe/skm — A simple and powerful SSH keys manager ☆979
  • scaleway/scaleway-cli — Command Line Interface for Scaleway ☆925
  • rogerwelin/cassowary — Modern cross-platform HTTP load-testing tool written in Go ☆804
  • kool-dev/kool — From local development to the cloud: web apps development with containers made easy. ☆691
  • getanteon/alaz — Alaz: Advanced eBPF Agent for Kubernetes Observability – Effortlessly monitor K8s service interactions and performance metrics in your K8s environment. Gain in-depth insights with service maps, metrics, and more, while staying alert to crucial system anomalies ☆694
  • jenkins-zh/jenkins-cli — Jenkins CLI allows you to manage your Jenkins in an easy way ☆406
  • kevincobain2000/gobrew — Go version manager, written in Go. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash. ☆396
  • oxyno-zeta/s3-proxy — S3 Reverse Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth) ☆368
  • appleboy/easyssh-proxy — easyssh-proxy provides a simple implementation of some SSH protocol features in Go ☆336
  • xitonix/trubka — A CLI tool for Kafka ☆334
  • emicklei/mora — MongoDB generic REST server in Go ☆316
  • appleboy/drone-scp — Copy files and artifacts via SSH using a binary, docker or Drone CI. ☆156
  • datarootsio/tf-profile — CLI tool to profile Terraform runs, written in Go ☆158
  • s0rg/decompose — Reverse-engineering tool for docker environments ☆106
  • x1unix/docker-go-mingw — Docker image for building Go binaries with MinGW toolchain. Supports Windows on ARM! ☆52
  • appleboy/drone-jenkins — Drone plugin for trigger Jenkins jobs. ☆38

Other Software

  • schollz/croc — Easily and securely send things from one computer to another ☆30,609
  • restic/restic — Fast, secure, efficient backup program ☆29,336
  • seaweedfs/seaweedfs — SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, xDC replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. Enterprise version is at seaweedfs.com. ☆25,235
  • juicedata/juicefs — JuiceFS is a distributed POSIX file system built on top of Redis and S3. ☆11,935
  • Shopify/toxiproxy — A TCP proxy to simulate network and system conditions for chaos and resiliency testing ☆11,366
  • visualfc/liteide — LiteIDE is a simple, open source, cross-platform Go IDE. ☆7,697
  • boyter/scc — Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go ☆7,486
  • fogleman/nes — NES emulator written in Go. ☆5,581
  • gilbertchen/duplicacy — A new generation cloud backup tool ☆5,476
  • 0xERR0R/blocky — Fast and lightweight DNS proxy as ad-blocker for local network with many features ☆5,470
  • documize/community — Modern Confluence alternative designed for internal & external docs, built with Go + EmberJS ☆2,273
  • Forceu/Gokapi — Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported. ☆2,149
  • go-sonic/sonic — Sonic is a blogging platform developed by Go. Simple and powerful ☆2,096
  • gocircuit/circuit — Circuit: Dynamic cloud orchestration ☆1,988
  • SpatiumPortae/portal — Portal is a quick and easy command-line file transfer utility from any computer to another ☆1,665
  • root-gg/plik — Plik is a temporary file upload system (Wetransfer like) in Go. ☆1,591
  • msoap/shell2http — Executing shell commands via HTTP server ☆1,420
  • pointlander/peg — Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. ☆1,065
  • janpfeifer/gonb — GoNB, a Go Notebook Kernel for Jupyter ☆891
  • shurcooL/Go-Package-Store — An app that displays updates for the Go packages in your GOPATH. ☆897
  • alajmo/sake — task runner for local and remote hosts ☆703
  • goccmack/gocc — Parser / Scanner Generator ☆643
  • moshebe/gebug — Debug Dockerized Go applications better ☆632
  • chapar-rest/chapar — Chapar is a simple and easy to use api testing tools aims to help developers to test their api endpoints. it support http and grpc protocols. ☆593
  • edwingeng/hotswap — A complete solution to reload your go code without restarting your server, interrupting or blocking any ongoing procedure. ☆397
  • s0rg/crawley — The unix-way web crawler ☆303
  • marwanhawari/stew — An independent package manager for compiled binaries. ☆276
  • assafmo/joincap — Merge multiple pcap files together, gracefully. ☆217
  • mk-5/fjira — The golang fuzzy-find cli jira interface ☆184
  • lingrino/vaku — vaku extends the vault api & cli ☆155

Stream Processing

  • reugn/go-streams — A lightweight stream processing library for Go ☆2,062
  • whitaker-io/machine — Machine is a workflow/pipeline library for processing data ☆161
  • Breeze0806/go-etl — go-etl is a toolset for data extraction, transformation and loading. ☆151

Style Guides

Template Engines

  • a-h/templ — A language for writing HTML user interfaces in Go. ☆9,507
  • valyala/quicktemplate — Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template ☆3,240
  • johnfercher/maroto — A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. ☆2,489
  • CloudyKit/jet — Jet template engine ☆1,347
  • valyala/fasttemplate — Simple and fast template engine for Go ☆876
  • osteele/liquid — A Liquid template engine in Go ☆309
  • go-sprout/sprout — From sprig to sprout - Useful template functions for Go templates with steroids ☆174
  • robfig/soy — Go implementation for Soy templates (Google Closure templates) ☆175
  • goradd/got — GoT is a template engine that turns templates into Go code to compile into your app. ☆38

Testing

Fail injection

Fuzzing

Mock

  • vektra/mockery — A mock code autogenerator for Go ☆6,706
  • DATA-DOG/go-sqlmock — Sql mock driver for golang to test database interactions ☆6,407
  • uber-go/mock — GoMock is a mocking framework for the Go programming language. ☆2,929
  • SpectoLabs/hoverfly — Lightweight service virtualization/ API simulation / API mocking tool for developers and testers ☆2,423
  • matryer/moq — Interface mocking tool for go generate ☆2,111
  • jarcoal/httpmock — HTTP mocking for Golang ☆2,040
  • maxbrunsfeld/counterfeiter — A tool for generating self-contained, type-safe test doubles in go ☆1,056
  • gojuno/minimock — Powerful mock generation tool for Go programming language ☆711
  • DATA-DOG/go-txdb — Immutable transaction isolated sql driver for golang ☆722
  • pashagolub/pgxmock — pgx mock driver for golang to test database interactions ☆501
  • xhd2015/xgo — All-in-one go testing library ☆414
  • seborama/govcr — HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing ☆189
  • elgohr/go-localstack — Go Wrapper for using localstack ☆83

Selenium and browser control tools

  • chromedp/chromedp — A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol. ☆12,038
  • go-rod/rod — A Chrome DevTools Protocol driver for web automation and scraping. ☆6,092
  • playwright-community/playwright-go — Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API. ☆2,807
  • mafredri/cdp — Package cdp provides type-safe bindings for the Chrome DevTools Protocol (CDP), written in the Go programming language. ☆757

Testing Frameworks

  • stretchr/testify — A toolkit with common assertions and mocks that plays nicely with the standard library ☆24,919
  • keploy/keploy — Unit, API & Integration Testing Agent for Developers. Generate tests, mocks/stubs for your APIs that actually work! ☆10,296
  • google/go-cmp — Package for comparing Go values in tests ☆4,467
  • testcontainers/testcontainers-go — Testcontainers for Go is a Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. ☆4,200
  • gavv/httpexpect — End-to-end HTTP and REST API testing for Go. ☆2,655
  • cucumber/godog — Cucumber for golang ☆2,464
  • orlangure/gnomock — Test your code without writing mocks with ephemeral Docker containers Setup popular services with just a couple lines of code No bash, no yaml, only code ☆1,449
  • dnaeon/go-vcr — Record and replay your HTTP interactions for fast, deterministic and accurate tests ☆1,316
  • go-testfixtures/testfixtures — Ruby on Rails like test fixtures for Go. Write tests against a real database ☆1,167
  • fergusstrange/embedded-postgres — Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test ☆982
  • gotestyourself/gotest.tools — A collection of packages to augment the go testing package and support common patterns. ☆564
  • appleboy/gofight — Testing API Handler written in Golang. ☆440
  • maxatome/go-testdeep — Extremely flexible golang deep comparison, extends the go testing package, tests HTTP APIs and provides tests suite ☆448
  • MarvinJWendt/testza — Full-featured test framework for Go! Assertions, fuzzing, input testing, output capturing, and much more! ☆421
  • viant/endly — End to end functional test and automation framework ☆268
  • ysmood/got — An enjoyable golang test framework. ☆269
  • adamluzsi/testcase — testcase is an opinionated testing framework to support test driven design. ☆123
  • kinbiko/jsonassert — A Go test assertion library for verifying that two representations of JSON are semantically equal ☆138
  • earthboundkid/be — The Go test helper for minimalists ☆108
  • corbym/gocrest — GoCrest - Hamcrest-like matchers for Go ☆106
  • cunicu/gont — A Go testing framework for distributed applications ☆84
  • hedhyw/gherkingen — Behaviour Driven Development tests generator for Golang ☆82
  • madflojo/testcerts — Dynamically generate self-signed certificates and certificate authorities for Go tests ☆74
  • viant/dsunit — Datastore Testibility ☆45
  • go-restit/restit — A Go library help testing your RESTful API application ☆55
  • rekby/fixenv — ☆32
  • abecodes/dft — Docker For Testing is a zero dependency wrapper around the docker command. ☆16

Text Processing

Formatters

Markup Languages

  • BurntSushi/toml — TOML parser for Golang with reflection. ☆4,763
  • yuin/goldmark — A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured. ☆4,198
  • JohannesKaufmann/html-to-markdown — Convert HTML to Markdown. Even works with entire websites and can be extended through rules. ☆2,948
  • pelletier/go-toml — Go library for the TOML file format ☆1,833
  • antchfx/htmlquery — htmlquery is golang XPath package for HTML query. ☆769
  • clbanning/mxj — Decode / encode XML to/from map[string]interface{} (or JSON); extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. ☆627
  • mmalcek/bafi — Universal JSON, BSON, YAML, CSV, XML, mt940 converter with templates ☆108
  • drewstinnett/gout — Output go objects in standard formats, such as YAML, JSON, etc ☆18

Parsers/Encoders/Decoders

Regular Expressions

Sanitation

  • microcosm-cc/bluemonday — bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS ☆3,449
  • JoshuaDoes/gofuckyourself — A sanitization-based swear filter for Go. ☆68

Scrapers

  • gocolly/colly — Elegant Scraper and Crawler Framework for Golang ☆24,457
  • PuerkitoBio/goquery — A little like that j-thing, only in Go. ☆14,602
  • mvdan/xurls — Extract urls from text ☆1,227
  • foolin/pagser — Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler ☆108
  • zoomio/tagify — Tagify produces a set of tags from a given source. Source can be either an HTML page, a Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages. ☆39

Utility/Miscellaneous

Third-party APIs

Utilities

  • junegunn/fzf — A command-line fuzzy finder ☆72,138
  • wagoodman/dive — A tool for exploring each layer in a docker image ☆51,445
  • samber/lo — A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...) ☆19,773
  • jmoiron/sqlx — general purpose extensions to golang's database/sql ☆17,060
  • goreleaser/goreleaser — Release engineering, simplified ☆14,916
  • xo/usql — Universal command-line interface for SQL databases ☆9,437
  • cilium/ebpf — ebpf-go is a pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel. ☆7,003
  • duke-git/lancet — A comprehensive, efficient, and reusable util function library of Go. ☆5,130
  • dropbox/godropbox — Common libraries for writing Go services/applications. ☆4,200
  • tdewolff/minify — Go minifiers for web formats ☆3,914
  • maruel/panicparse — Crash your app in style (Golang) ☆3,672
  • minio/mc — Unix like utilities for object store ☆3,099
  • darccio/mergo — Mergo: merging Go structs and maps since 2013 ☆3,021
  • create-go-app/cli — A complete and self-contained solution for developers of any qualification to create a production-ready project with backend (Go), frontend (JavaScript, TypeScript) and deploy automation (Ansible, Docker) by running only one CLI command. ☆2,711
  • avast/retry-go — Simple golang library for retry mechanism ☆2,730
  • megaease/easeprobe — A simple, standalone, and lightweight tool that can do health/status checking, written in Go. ☆2,256
  • gabriel-vasile/mimetype — A fast Golang library for media type and file extension detection, based on magic numbers ☆1,830
  • failsafe-go/failsafe-go — Fault tolerance and resilience patterns for Go ☆1,812
  • georgysavva/scany — Library for scanning data from a database into Go structs and more ☆1,448
  • itchyny/bed — Binary editor written in Go ☆1,320
  • goforj/godump — A minimal, developer-friendly pretty-printer and debug dumper for Go structs, inspired by Laravel’s dump() and Symfony’s VarDumper. ☆1,276
  • joshmedeski/sesh — Smart session manager for the terminal ☆1,153
  • rubyist/circuitbreaker — Circuit Breakers in Go ☆1,149
  • owenthereal/upterm — Instant Terminal Sharing ☆943
  • immortal/immortal — A *nix cross-platform (OS agnostic) supervisor ☆824
  • cep21/circuit — An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. ☆786
  • miniscruff/changie — Automated changelog tool for preparing releases with lots of customization options ☆782
  • jonboulle/clockwork — a fake clock for golang ☆710
  • derekparker/delve — Delve is a debugger for the Go programming language. ☆654
  • cristianoliveira/ergo — The management of multiple apps running over different ports made easy ☆635
  • Unrud/remote-touchpad — Control mouse and keyboard from a smartphone ☆609
  • blockloop/scan — Tiny lib to scan SQL rows directly to structs, slices, and primitive types ☆597
  • mennanov/limiters — Golang rate limiters for distributed applications ☆575
  • alajmo/mani — CLI tool to help you manage repositories ☆563
  • htcat/htcat — Parallel and Pipelined HTTP GET Utility ☆556
  • ungerik/go-dry — DRY (don't repeat yourself) package for Go ☆487
  • biter777/countries — Countries - ISO-639, ISO-3166 countries codes with subdivisions and names, ISO-4217 currency designators, ITU-T E.164 IDD phone codes, countries capitals, UN M.49 codes, IANA ccTLD countries domains, FIPS, IOC/NOC and FIFA codes, VERY VERY FAST, compatible with Databases/JSON/BSON/GOB/XML/CSV, Emoji countries flags and currencies, Unicode CLDR. ☆458
  • Boeing/config-file-validator — Cross Platform tool to validate configuration files ☆382
  • gotranspile/cxgo — Tool for transpiling C to Go. ☆363
  • ferama/rospo — Effortless persistent SSH tunnels with embedded server for seamless connectivity ☆340
  • kamilsk/retry — The most advanced interruptible mechanism to perform actions repetitively until successful. ☆344
  • subosito/gotenv — Load environment variables from .env or io.Reader in Go. ☆306
  • chenquan/diskusage — A tool for showing disk usage(Linux, MacOS and Windows), it is a very fast utility to find largest directories or files. ☆292
  • reugn/wifiqr — Create a QR code with your Wi-Fi login details ☆272
  • ikeikeikeike/go-sitemap-generator — go-sitemap-generator is the easiest way to generate Sitemaps in Go ☆225
  • viant/toolbox — Toolbox - go utility library ☆223
  • hedhyw/json-log-viewer — Interactive viewer for JSON logs. ☆160
  • maja42/goval — Expression evaluation in golang ☆170
  • antham/chyle — Changelog generator : use a git repository and various data sources and publish the result on external services ☆158
  • gookit/filter — Provide filtering, sanitizing, and conversion of Golang data ☆151
  • webriots/rate — A high-performance rate limiter library for Go applications ☆150
  • commander-cli/cmd — A simple package to execute shell commands on linux, windows and osx ☆160
  • jfcg/sorty — Fast Concurrent / Parallel Sorting in Go ☆137
  • knbr13/gitcs — Command line tool written in Go. It allows developers to scan their local Git repositories and generate a visual contributions graph. ☆124
  • syntaqx/cookie — Cookies, but with structs, for happiness. ☆111
  • jaschaephraim/lrserver — LiveReload server for Go [golang] ☆128
  • karl-cardenas-coding/go-lambda-cleanup — go-lambda-cleanup - A solution for removing previous versions of AWS Lambdas ☆95
  • linxGnu/mssqlx — Database client library, proxy for any master slave, master master structures. Lightweight, performant and auto balancing in mind. ☆102
  • PhakornKiong/go-pattern-match — Pattern Matching library for go ☆93
  • pioz/countries — All you need when you are working with countries in Go. ☆92
  • reugn/equalizer — A set of performant rate limiters for Go ☆91
  • arthurkushman/pgo — Go library for PHP community with convenient functions ☆88
  • VividCortex/pm — Processlist manager with TCP listener ☆79
  • icza/backscanner — A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. ☆67
  • antham/ghokin — Parallelized formatter with no external dependencies for gherkin (cucumber, behat...) ☆47
  • antham/yogo — Check yopmail mails from command line. ☆46
  • asticode/go-astitodo — Parse TODOs in your GO code ☆66
  • wroge/scan — scan sql rows into any type powered by generics ☆66
  • tiendc/gofn — High performance utility functions using Generics ☆52
  • kazhuravlev/just — Collection of useful functions. Complete simple tasks faster! ☆36
  • shockerli/cvt — Easy and safe convert any value to another type in Go ☆53
  • kazhuravlev/git-tools — Useful set of tools which helps to manage git tags ☆33
  • xorcare/pointer — Helper routines for simplifying the creation of optional fields of basic type. ☆45
  • ik5/gostrutils — Collections of string utils I have created over the years ☆47
  • piglig/go-qr — A native, high-quality and minimalistic QR code generator ☆41
  • kazhuravlev/healthcheck — Readiness probes for Kubernetes application ☆21
  • nikolaydubina/watchhttp — Run command periodically and expose latest STDOUT as HTTP endpoint ☆34
  • skovtunenko/graterm — Provides primitives to perform ordered GRAceful TERmination for Golang applications ☆28
  • mikekonan/go-types — Library providing opanapi3 and Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. ☆21

UUID

  • google/uuid — Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. ☆5,733
  • oklog/ulid — Universally Unique Lexicographically Sortable Identifier (ULID) in Go ☆4,764
  • gofrs/uuid — A UUID package for Go ☆1,702
  • edwingeng/wuid — An extremely fast globally unique number generator. ☆541
  • twharmon/gouid — Fast, dependable universally unique ids ☆26

Validation

  • go-playground/validator — Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving ☆18,686
  • gookit/validate — Go package for data validation and filtering. support Map, Struct, Form data ☆1,101
  • Oudwins/zog — Go with Zod inspired simple schema validation ☆921
  • twharmon/govalid — Struct validation using tags ☆98
  • osamingo/checkdigit — Provide check digit algorithms and calculators written in Go ☆111
  • faceair/jio — jio is a json schema validator similar to joi ☆118
  • marrow16/valix — Go package for validating requests ☆31
  • tiendc/go-validator — Intuitive validation library for Golang ☆31

Version Control

  • go-git/go-git — A highly extensible Git implementation in pure Go. ☆6,729
  • gabyx/Githooks — Githooks: per-repo and shared Git hooks with version control and auto update. [✩Star] if you're using it! ☆111
  • jfrog/froggit-go — Froggit-Go is a universal Go library, allowing to perform actions on VCS providers. ☆47

Video

  • bluenviron/gortsplib — RTSP client and server library for the Go programming language ☆808
  • asticode/go-astisub — Manipulate subtitles in GO (.srt, .ssa/.ass, .stl, .ttml, .vtt (webvtt), teletext, etc.) ☆646
  • asticode/go-astits — Demux and mux MPEG Transport Streams (.ts) natively in GO ☆576
  • Eyevinn/mp4ff — Library and tools for working with MP4 files containing video, audio, subtitles, or metadata. The focus is on fragmented files. Includes mp4ff-info, mp4ff-encrypt, mp4ff-decrypt and other tools. ☆538
  • asticode/go-astiav — Golang ffmpeg and libav C bindings ☆526
  • adrg/libvlc-go — Handcrafted Go bindings for libVLC and high-level media player interface ☆474
  • korandiz/v4l — Facade to the Video4Linux video capture interface. ☆85
  • unki2aut/go-mpd — Go library for parsing and generating MPEG-DASH Media Presentation Description (MPD) files ☆26

Web Frameworks

  • gin-gonic/gin — Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. ☆83,209
  • gofiber/fiber — Express inspired web framework written in Go ☆37,169
  • beego/beego — beego is an open-source, high-performance web framework for the Go programming language. ☆32,157
  • labstack/echo — High performance, minimalist Go web framework ☆31,276
  • gofr-dev/gofr — An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability. ☆12,579
  • gogf/gf — A powerful framework for faster, easier, and more efficient project development. ☆12,559
  • cloudwego/hertz — Go HTTP framework with high-performance and strong-extensibility for building micro-services. ☆6,396
  • goadesign/goa — Design-first Go framework that generates API code, documentation, and clients. Define once in an elegant DSL, deploy as HTTP and gRPC services with zero drift between code and docs. ☆5,899
  • apache/dubbo-go — Go Implementation For Apache Dubbo . ☆4,818
  • goravel/goravel — A Golang framework for web artisans. Tribute to Laravel. ☆3,915
  • danielgtaylor/huma — Huma REST/HTTP API Framework for Golang with OpenAPI 3.1 ☆3,242
  • go-goyave/goyave — The enterprise REST API framework ☆1,718
  • go-fuego/fuego — Golang Fuego - Web framework generating OpenAPI 3 spec from source code - Pluggable to existing Gin & Echo APIs ☆1,442
  • savsgio/atreugo — High performance and extensible micro web framework. Zero memory allocations in hot paths. ☆1,285
  • templui/templui — The UI Kit for templ ☆803
  • ankorstore/yokai — Simple, modular, and observable Go framework for backend applications. ☆736
  • indeedeng/iwf — iWF is a Workflow-As-Code microservice orchestration platform offering an orchestration coding framework and service for building resilient, fault-tolerant, scalable long-running processes ☆582
  • i-love-flamingo/flamingo-commerce — Flexible E-Commerce Framework on top of Flamingo. Used to build E-Commerce "Portals" and connect it with the help of individual Adapters to other services. ☆566
  • i-love-flamingo/flamingo — Flamingo Framework and Core Library. Flamingo is a go based framework to build pluggable applications. Focus is on clean architecture, maintainability and operation readiness. ☆538
  • rookie-ninja/rk-boot — Build microservice with rk-boot and let the team take over clean and tidy code. ☆544
  • fastschema/fastschema — All-in-One Backend as a Service with Headless CMS Power ☆473
  • uadmin/uadmin — The web framework for Golang ☆352
  • xxjwxc/ginrpc — gin auto binding, grpc and annotated route ☆297
  • hidevopsio/hiboot — hiboot is a high performance web and cli application framework with dependency injection support ☆181
  • beatlabs/patron — Microservice framework following best cloud practices with a focus on productivity. ☆126
  • gone-io/gone — Gone - A Lightweight Dependency Injection Framework for Go | Tag-based Auto Injection | Supports Config Center/Lifecycle Management | Provides Rich Ecosystem Components and Scaffolding Tool ☆130
  • claygod/microservice — This library provides a simple microservice framework based on clean architecture principles with a working example implemented. ☆118
  • gookit/rux — Rux is an simple and fast web framework. Support route group, param route binding, middleware, compatible http.Handler interface ☆97
  • yaitoo/xun — Xun is a web framework built on Go's built-in html/template and net/http package’s router (1.22). ☆87
  • abemedia/go-don — API framework written in Golang. ☆54
  • go-spring/spring-core — Go-Spring is a high-performance Go framework inspired by Spring Boot, offering DI, auto-configuration, and lifecycle management while maintaining Go's simplicity and efficiency. ☆52
  • clubpay/ronykit — API Framework supporting REST and RPC. ☆34
  • SaiNageswarS/go-api-boot — Complete framework to build API applications in Golang using grpc ☆34
  • jvcoutinho/lit — A simple, fast and expressive HTTP framework for Go. ☆30

WebAssembly

  • tinygo-org/tinygo — Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM. ☆16,470
  • agnivade/wasmbrowsertest — Run WASM tests inside your browser ☆200
  • extism/go-sdk — Extism Go SDK - easily run WebAssembly modules in your Go applications ☆125

Webhooks Server

  • adnanh/webhook — webhook is a lightweight incoming webhook server to run shell commands ☆11,052
  • webhookx-io/webhookx — an open-source webhooks gateway for message receiving, processing, and delivering. ☆234
  • 42atomys/webhooked — A webhook receiver on steroids. ☆41

Windows

Workflow Frameworks

  • dagu-org/dagu — A feature-full workflow engine for enterprise & small teams. Low-code and language agnostic, making it easy to integrate with any existing software. ☆2,394
  • noneback/go-taskflow — A pure go General-purpose Task-parallel Programming Framework with integrated visualizer and profiler ☆563
  • cadence-workflow/cadence-go-client — Framework for authoring workflows and activities running on top of the Cadence orchestration engine. ☆359
  • luno/workflow — A tech stack agnostic Event Driven Workflow framework, written in Go, that supports durable, robust, and idempotent state changes with timeouts, callbacks, scheduled triggers, and await calls. Compatible with Kafka and Reflex out of the box. ☆179
  • rhosocial/go-dag — A Go-based framework has been developed to oversee the execution of workflows delineated by directed acyclic graphs (DAGs). ☆29

XML

  • miku/zek — Generate a Go struct from XML. ☆771
  • antchfx/xpath — XPath package for golang, supports HTML, XML, JSON document query and more ☆723
  • antchfx/xmlquery — xmlquery is Golang XPath package for XML query. ☆472

Zero Trust

  • sigstore/cosign — Code signing and transparency for containers and binaries ☆5,070
  • openziti/ziti — The parent project for OpenZiti. Here you will find the executables for a fully zero trust, application embedded, programmable network @OpenZiti ☆3,449
  • spiffe/spire — The SPIFFE Runtime Environment ☆1,995
  • philips-labs/spiffe-vault — Integrates Spiffe and Vault to have secretless authentication ☆90

Gophers

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.

About

Structured collection of Go frameworks, libraries, tools, and resources. Automatically maintained and up-to-date with metadata, filtering, and comprehensive categorization.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载