A great systems-oriented programming language I’ve taken up to complement Python due to its ability to cross-compile and produce (mostly) self-contained static binaries.
Tricks
Shrinking executables via gccgo and upx:
go build -mod=vendor -gccgoflags '-Os -s' -o main && upx --best --lzma main
Resources
| Category | Date | Link | Notes |
|---|---|---|---|
| AI | 2025 | go-attention | A full attention mechanism and transformer in pure go (uses FP64, and is slow) |
| 2023 | agency | an LLM library for Go |
|
| Authentication | 2025 | obligator | a relatively simple and opinionated OpenID Connect (OIDC) server |
| pocket-id | A simple and easy-to-use OIDC provider |
||
| tinyauth | a simple authentication server that integrates with traefik |
||
| 2020 | authelia | authentication and authorization server providing 2-factor authentication and single sign-on |
|
| tobab | an identity-aware proxy |
||
| Ory | a full IAP authentication solution with OpenID integration |
||
| loginsrv | a standalone minimalistic login server providing a JWT login for multiple login backends |
||
| 2018 | traefik-forward-auth | a forward auth service that provides OAuth support for the Traefik reverse proxy |
|
| Big Data | gohadoop | A set of libraries to build Hadoop jobs |
|
| 2015 | Glow | An easy-to-use distributed computation (map-reduce) system in pure Go. |
|
| Configuration | 2018 | envconfig | simple, no-frills environment variable handling |
| 2017-01 | viper | A flexible configuration solution for 12 factor apps (and more) |
|
| Data Science | 2025 | zasper | a Jupyter clone designed for massive concurrency with minimal resource usage. |
| 2018 | go-freeling | Natural language processing |
|
| gonum/floats | operations on slices of floats |
||
| gonum/graph | Graph navigation/traversal |
||
| gonum/matrix | Matrix algebra |
||
| gonum/optimize | Gradient descent and minimization |
||
| gonum/plot | Plotting and visualization |
||
| gonum/stat | statistics package |
||
| gophernotes | A Jupyter kernel for Go |
||
| gota | DataFrames, Series and data manipulation |
||
| regression | Multivariable regression |
||
| csvutil | CSV and tabular data |
||
| Data Structures | 2016 | gen | Clojure-like immutable data-structures and functional helpers |
| Database | 2025 | pennybase | Poor man’s Backend-as-a-Service (BaaS), similar to Firebase/Supabase/Pocketbase |
| 2022 | sqlite | a Go interface to sqlite3 |
|
| go-sqlite3-stdlib | a set of math and statistics extensions to |
||
| 2021 | nakama | A game-oriented state server, backed by CockroachDB |
|
| 2020 | dbmate | a database migration tool that supports MySQL, PostgreSQL, SQLite and ClickHouse |
|
| 2016 | gorm | A Go ORM library |
|
| Deep Learning | 2018 | go-neural | |
| gonn | |||
| neurgo | |||
| Desktop | 2025 | fynedesk | a desktop environment built with the Fyne GUI toolkit |
| 2022 | wails | an Electron-like framework for desktop app development |
|
| Frameworks | 2024 | htmgo | a lightweight framework for building interactive web applications using Go and htmx without JavaScript |
| GUI | gio | a cross-platform GUI library for Go |
|
| spot | a React-like destkop GUI toolkit for Go that supports FLTK and Cocoa |
||
| 2023 | fyne | a cross platform GUI toolkit that can be used in Android and iOS |
|
| 2022 | tinygui | a GUI toolkit for TinyGo |
|
| Graphics | 2025 | fauxgl | a software rasterizer and 3D renderer |
| meshview | a 3D viewer for STL meshes |
||
| 2022 | sdfx | a CAD package written in Go |
|
| 2016 | gift | The Go Image Filtering Toolkiti |
|
| HomeKit | 2022 | hap | a rewrite of the |
| IoT | 2020 | tamago | compile and execute Go on bare ARM SoCs |
| 2018 | gokrazy | a pure-Go userland for Raspberry Pi 3 appliances |
|
| tinygo | an |
||
| Libraries | 2025 | script | a library for building script alternatives |
| event | simple internal event bus for Go applications |
||
| mcp-golang | a Go implementation of the MCP protocol |
||
| 2024 | rill | a toolkit for clean, composable, channel-based concurrency |
|
| darwinkit | a library for building Darwin (macOS) apps |
||
| lo | a lodash-style library for generics, map, filter, contains, find, etc. |
||
| go-funk | a library with map, reduce and other functional primitives |
||
| 2023 | ergo | an impressive Erlang-compatible library for implementing OTP design patterns |
|
| sdf | signed distance function shape generation |
||
| oidc | OpenID Connect client and server library |
||
| 2022 | maphash | Hash any comparable type using Golang’s fast runtime hash. |
|
| imagemeta | supports EXIF, XMP and HEIC metadata parsing |
||
| natiu-mqtt | a self-contained MQTT implementation |
||
| 2020 | Chroma | a fast generic syntax highlighter |
|
| olric | A distributed cache and in-memory key/value data store that can be used standalone or embedded. |
||
| 2019 | bild | a collection of parallel image processing algorithms |
|
| 2018 | go-imap | an IMAP client library |
|
| goworker | A Resque-compatible library for background workers |
||
| go-dsp | A digital processing package |
||
| ffjson | Faster JSON for Go |
||
| gjson | Fast JSON data retrieval |
||
| scrape | A simple interface for Go web scraping |
||
| 2016 | go-linq | LINQ-like functionality with coroutine support |
|
| libchan | A network-enabled abstraction that mimics channels |
||
| Machine Learning | 2018 | goml | stream oriented ML library |
| word2vec | word2vec model support |
||
| golearn | A very nice machine learning library |
||
| Messaging | 2024 | SmoothMQ | is a drop-in replacement for AWS SQS |
| 2018 | nsq | A message queueing system |
|
| Microservices | 2020 | flogo | a low-code environment with streaming support and a Node-RED like approach. |
| flatend | an interesting take on deployment and discovery via P2P/Kademlia |
||
| 2019 | go-micro | a microservices framework with pluggable components for discovery, transports, etc. |
|
| Middleware | 2017-11 | casbin | a flexible access control library |
| Networking | 2023 | blocky | DNS proxy/ad-blocker for local network (can run inside of gokrazy) |
| 2018 | router7 | A router based on gokrazy |
|
| Other | 2021 | macdriver | Objective-C bindings for Go |
| 2018 | Shrinking Go binaries | By stripping debug symbols and using |
|
| go-bindata | Pack external assets into a Go program as binary data |
||
| Parsers | 2016-06 | etree | An XML handling library modeled on Python’s |
| Protocols | 2016 | go-vnc | An extensible VNC protocol library |
| 2015-03 | torrent | An embeddable BitTorrent library |
|
| 2015-01 | mangos | A network library for IPC patterns |
|
| Robotics | 2014 | Gobot | A set of robotics-oriented libraries |
| Search | 2016 | blevesearch | A Lucene-like indexing library |
| Servers | 2023 | mox | modern full-featured (SMTP, IMAP, DKIM, etc.) mail server |
| 2020 | maddy | a composable, all-in-one SMTP/IMAP server |
|
| System | 2018 | suture | A library that implements Erlang-like supervision trees |
| Tools | 2025 | minimalytics | a minimalist analytics tool backed by SQLite |
| act | a tool for running GitHub Actions locally |
||
| u-root | a Go-based userspace for embedded systems and cloud environments. |
||
| 2024 | bruin | a data pipeline tool that integrates data ingestion, transformation, and quality checks. |
|
| gozer | A simple static site generator |
||
| monogon | a Linux userland in pure Go |
||
| nano-web | Hyper-minimal webserver for serving SPAs and static content |
||
| zoraxy | A general purpose HTTP reverse proxy and forwarding tool |
||
| 2023 | glow | a CLI Markdown renderer in te spirit of more/less |
|
| gojekyll | A partial reimplementation of Jekyll in Go |
||
| 2022 | vhs | terminal demo recorder with GIF/ |
|
| goweight | a CLI tool to identify which libraries contribute most to binary size |
||
| 2021 | till | a web scraping caching proxy that handles most of the anti-scraping mechanics |
|
| zinc | a lightweight alternative to elasticsearch that claims to run in less than 100 MB of RAM and has a broadly similar API |
||
| pyroscope | a profiling platform with support for Go, Python and Ruby |
||
| 2020 | Got | a tool/library that uses concurrent HTTP range requests for faster downloads |
|
| Transpilers | 2014 | Tardis Go | A transpiler to JavaScript |
| funcgo | A simplified dialect that compiles to Clojure |
||
| GopherJS | A transpiler to JavaScript |
||
| UI | 2019 | muon | a lightweight alternative to Electron with go bindings |
| 2018 | termui | A terminal-oriented dashboard library |
|
| 2014 | ui | A platform-native GUI library |
|
| Video | 2024 | go2rtc | a camera proxy that can surface RTSP cameras to HomeKit (and much more) |
| broadcast-box | a tool for broadcasting video streams to multiple platforms using WebRTC |
||
| Web | 2022 | but | a full-stack web framework with server-side rendering and good JS integration |
| 2020 | gearbox | A web framework built around |
|
| 2018 | Beego | Ships with an ORM and built-in monitoring |
|
| QOR | A set of libraries for E-Commerce and CMS |
||
| Gin | uses a Radix tree for routing, handles panics |
||
| Gobuffalo | |||
| Iris | Lots of features and plugins |
||
| 2017-07 | HttpRouter | A high performance HTTP router |
|
| Goji | A Sinatra-inspired, minimalist framework |
||
| 2016-06 | echo | A high-performance HTTP server framework with LetsEncrypt support |
|
| Web Frameworks | 2024 | sandwich | a middleware & routing framework |
| pocketbase | a web app realtime backend with SQLite, user and file management, and a dashboard UI. |
||
| Writing | 2023 | vale | an extensible linter for prose |