Go (lang)

A great systems-oriented programming language I’ve taken up to complement

Resources

Category Date Link Notes
Authentication 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 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 2022 sqlite

a Go interface to sqlite3

go-sqlite3-stdlib

a set of math and statistics extensions to sqlite

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 2022 wails

an Electron-like framework for desktop app development

Graphics sdfx

a CAD package written in Go

2016 gift

The Go Image Filtering Toolkiti

HomeKit 2022 hap

a rewrite of the brutella/hc HomeKit library

IoT tinygui

a GUI toolkit for TinyGo

2020 tamago

compile and execute Go on bare ARM SoCs

2018 gokrazy

a pure-Go userland for Raspberry Pi 3 appliances

tinygo

an LLVM compiler for small devices

Libraries 2023 ergo

an impressive Erlang-compatible library for implementing OTP design patterns

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

go-bindata

Pack external assets into a Go program as binary data

Parsers 2016-06 etree

An XML handling library modeled on Python’s ElementTree

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 2022 vhs

terminal demo recorder with GIF/ffmpegre output

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

Web 2022 but

a full-stack web framework with server-side rendering and good JS integration

2020 gearbox

A web framework built around fasthttp

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

This page is referenced in: