#404 — March 18, 2022 |
🥳 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 John Starich |
Quick bits:
|
|
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 ArangoDB — ArangoDB 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
|