Go 1.16 Release Notes

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • modd

    A flexible developer tool that runs processes and responds to filesystem changes

  • This is by far the best tool for the job that I've found: https://github.com/cortesi/modd

  • reflex

    Run a command when files change (by cespare)

  • * I would love to see Go have first class support for watch/hot reload while developing*

    Its not first class, but I have been happy using reflex [1] for non-http and gin [2] for http. Combined with Go's fast compile they work as well as a hot reload.

    [1] https://github.com/cespare/reflex

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • gin

    Live reload utility for Go web servers (by codegangsta)

  • devd

    A local webserver for developers

  • In tandem with https://github.com/cortesi/devd I've found it a good setup for web development.

    Modd watches file changes and rebuilds, while Devd enables livereload, letting me make changes in my text editor and then see the rendered changes in the browser, side-by-side, in near real-time.

    This is for go web development but I'm pretty sure these two tools are language-agnostic.

  • watchr

    watchr - file watcher in Go that triggers predefined actions on detected files modifications

  • Shameless self plug, but I've had that itch and decided to scratch it with a tool[0] that would be universal and not limited to Go - albeit written in it ;)

    [0] https://github.com/bartekrutkowski/watchr

  • golang-docker-cache

    Improved docker Golang module dependency cache for faster builds.

  • > The go mod vendor and go mod tidy subcommands now accept the -e flag, which instructs them to proceed despite errors in resolving missing packages.

    Does this mean I can now reliably build the dependencies in prior using this hack,[1][2] to better utilize Docker layer cache?

    [1] https://github.com/montanaflynn/golang-docker-cache

  • go

    The Go programming language

  • It’s still supported and developed, but it’s not an area where most activity is currently focused. It is very stable, even more so when it was first added, since bugs are being fixed and regression tests are added. You can see what issues are open and closed at https://github.com/golang/go/issues?q=is%3Aissue+label%3AArc....

    I’ve been using Go in the frontend in many (most?) of my personal projects since the early days of GopherJS, and by now I’ve compiling most of that frontend code to Wasm.

    If you haven’t already seen it, https://golang.org/wiki/WebAssembly has lots of good info.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • lrt

    lrt is a live reloading tool for go http servers

  • To do this well (for servers, which is the most common case) you need to keep the port open (and delay requests while recompilation is in progress) or clients can see transient errors. So it's probably not a language level concern, but a protocol level one (it's very solvable for HTTP for example).

    I built https://github.com/superhuman/lrt which tries to solve this problem in a go-like way (no configuration required, minimal log noise, and reliability/simplicity as the primary design goals) for Superhuman.

  • gotk3

    Go bindings for GTK3

  • I have been quite happy with the Gtk bindings for Go (https://github.com/gotk3/gotk3). As Gtk has a C Api, it is a good match for Go, actually Go makes Gtk nicer than calling it from C in my eyes, as the GObject wrap to Go types and you can just call methods on them vs. the C syntax of passing the GObject as the first function argument and having the object type in the function name.

    If you install the Gtk libraries on the Mac, Go programs written with gotk3 just compile and run there too.

  • xid

    Parse unicode identifiers (by smasher164)

  • I do care about categorization though. Here’s an identifier parsing library of mine (https://github.com/smasher164/xid) where I can’t test that codepoints are in some category without knowing the version.

    If unicode was an external library, it would be my responsibility to update this identifier parsing library.

  • gio

    Mirror of the Gio main repository (https://git.sr.ht/~eliasnaur/gio)

  • Gio is coming along nicely. Once they go full tile-based-rasterization ala Pathfinder it'll be a contender.

    https://gioui.org

  • goingo

  • Go makes pretty bad WebAssembly. It only embeds in Javascript, and it's at least 2MB for Hello World. You can't really use it in server-side engines like wasmer/wasmtime.

    TinyGo is far better, but only supports a subset of Go's stdlib.

    I'm playing with TinyGo, and using GPRC communication with the outer engine as a poor substitute for WASM interface types.

    https://github.com/fizx/goingo if you want to read the ugly prototype!

  • fyne

    Cross platform GUI toolkit in Go inspired by Material Design

  • I have great success with https://fyne.io/ used it to build my home grown MFA app (written in Go, work on iOS, Android, Desktop). granted it takes a bit of binding in C to work on iOS.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts