#​404 — March 18, 2022

Unsubscribe  |  Read on the Web

🥳 Woo-hoo, Go 1.18 is finally here. And yes, we stole our subject line's joke from Brad Fitzpatrick :-)

The Go Weekly Newsletter

Go 1.18 Released

Given the extra excitement around Go 1.18 recently, it's hard to believe Go 1.17 was only released seven months ago! 1.18 is a big enough release that rather than link solely to the main release announcement, we want to cover a variety of things you might find useful:

Secure Redis Hosting from RedisGreen — The latest Redis features, instrumented and scaled with the tools teams need as they grow.

RedisGreen sponsor

Write Once, Store Anywhere: Extensible File Systems for Go — Shows off a new, extensible file system pattern for use from Go – use hackpadfs to take fs “to a whole new level”, says the author.

John Starich

Quick bits:

Jobs

Backend Engineer | Remote within CET (-3/+3 hours) | Full-Time — Europe's leading business finance solution. You will help us simplify everything from everyday banking and financing, to bookkeeping and spend management.
Qonto

Backend / API Engineer at Textile (Remote) — Written primarily in Go, built on top of protocols like Libp2p, IPFS, & Filecoin, and is deployed to Google Kubernetes Engine. You'll interact with layers throughout the stack and own responsibilities from R&D to implementation and production monitoring.
Textile

Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired

Hacking Sum Types with Go Generics — Sum types are found in Haskell and other languages and are super convenient to group different types together. Generics (kind of) gives us the ability to create them in Go.

Lawrence Jones

Building a gRPC Client in Go — This is about as simple as it gets because it relies on generating code from a Protobuf file (which is covered in an earlier creating a gRPC server in Go article).

Sahan Serasinghe

Creating a Go App with Alpine.js and Webview — It depends how you define a GUI app but if using some JavaScript and a web-view control (specifically webview) works for you, this tutorial covers one approach. This only covers the basics, with the example code being perhaps more useful to read.

Thomas Schühly

Implementing Java-esque Streams in Go with Generics — The author isn’t entirely satisfied with the outcome, but it was a worthwhile experiment to see what sort of opportunities generics could open up.

Filip Borkiewicz

🛠 Code & Tools

Freecache 1.2.1: A Cache Library for Go with Zero GC Overhead — Store millions of entries without expensive GC overhead. (When so many projects fizzle out within months, I always love it when a project we last featured 7 years ago gets an update!)

Evan Zhou

Mage 1.13.0: A Make-Like Build Tool That Uses Go Functions — Write regular Go functions and Mage then turns them into Make-style runnable targets. Fantastic use of the Go gopher in its logo too :-) GitHub repo.

Nate Finch

A ClickHouse Client for Go 1.18+ — We’re already beginning to see client libraries leaning on generics, such as this one for the Clickhouse open source column oriented database system.

Uptrace

Seamlessly Integrate Video into Your Go App

Mux sponsor

cli 2.4: A Fast Way to Build Go CLI Apps — The manual outlines all of the key features, but think shell auto-completion, subcommands, option parsing, help text, etc.

Jeremy Saenz and Contributors

LazyDocker: A Terminal-Based UI for Working with Docker — Not only is this a useful app for working with Docker, it’s a great example of a terminal-based app with a complete UI (powered by gocui) too.

Jesse Duffield

The Official Go Driver for ArangoDBArangoDB is a popular open source multi-model (graph, document, and search) database.

ArangoDB

A CGo-Free Port of SQLite for Go Users — Supports AMD64 and/or ARM64 on multiple platforms, but the latest release adds support for Linux on 64 bit RISC-V too.

cznic / modernc

GoCV 0.30.0: Computer Vision in Go using OpenCV 4+ — Gets a bump up to OpenCV 4.5.5. GitHub repo.

The Hybrid Group

Qemantra: A Tool for Creating and Running QEMU VMs
pspiagicw