#​493 — January 30, 2024

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

The Latest Go Developer Survey is Now Open — 2024’s first official Go Developer Survey is out (you can take it here) and the Go team is ready for your feedback. It closes on February 11th, so don’t wait too long. Things that we share do end up affecting the future of Go, so it’s worth doing. Here’s the results of the last survey, if you want to see how it tends to shake out.

The Go Team

Go 1.22 Release Candidate 2 Released — Reminding us that we’re just weeks from the final release of Go 1.22, the second RC is here. The draft release notes have been updated somewhat and act as a good introduction to what improvements 1.22 gains, if you want to get ahead of the story.

Cherry and Carlos (Go Team)

Help GopherConEU in Athens, Greece be a Memorable Event! — Join GopherConEU in Athens, Greece between February 6 - 8th, 2024. Bill Kennedy and Miki Tebeka are part of GopherConEU Training workshops sharing cutting edge Go engineering best practices, libraries, frameworks, performance optimization, and more.

Ardan Labs & GopherConEU sponsor

What’s New in Go 1.22: slices.Concat — The implementer of slices.Concat discusses its implementation and how it addresses a common performance issue when working with slices. If you’re manipulating slices in loops, you should read this.

Carlana Johnson

QUICK BITS:

▶  The Future of JSON in Go — Tailscale’s Joe Tsai takes a tour through the world of JSON parsing and generation in Go, showing off problems with current approaches and going into the work on encoding/json/v2.

Joe Tsai

Building a Go Static Site Generator Using elem-go and goldmark — Rather than use something like Hugo, you could use some libraries to roll your own static site generator. There’s also a template app to get started quickly.

Chase Fleming

🛠 Code & Tools

Memos: A Privacy-First Go-Powered Note Taking App — A complete, MIT-licensed note taking webapp that you can self host. It uses Echo as a framework and stores its data with SQLite. GitHub repo.

Memos Contributors

gofumpt 0.6: A Stricter gofmt — If you like rules and gofmt isn’t strict enough, gofumpt has even stricter rules to keep your codebase clean and under control. v0.6 is based on Go 1.21’s gofmt, and requires Go 1.20+

Daniel Martí

Try a Lightning-Fast Pairing Tool Built with You in Mind — Tuple will change the way you think about pair programming. Try it with your team free for 14 days, no card required.

Tuple sponsor

goja: An ECMAScript/JavaScript Engine in Pure Go — Want to add JS-based scripting functionality to your Go apps? This gives you an option that doesn’t involve bringing in an external engine. For an example of how it might be used, check out the next item..

Dmitry Panov

k6: A Go-Powered Load Testing Tool — A full-featured, configurable load generation tool that uses the goja engine (above) to support writing test scripts in JavaScript. (AGPL licensed.)

Grafana Labs

Grape: A New Zero-Dependency HTTP Library for Go“A thin wrapper around the standard library, providing helper functions to facilitate faster and easier development. Adding only a single dependency to your projects.”

Hossein Yazdani

📰 Classifieds

🪐 Build your permissions system with Go and open-source. SpiceDB is the open-source implementation of Google Zanzibar.

🧊 tinygo-wasm-webgl-demo — A small repo showing off how to use TinyGo, WebAssembly and WebGL to create a simple 3D graphical demo that runs in the browser.

Andriy Semenets

  • oapi-codegen 2.1 – Generate boilerplate code from OpenAPI specs.

  • gRPC-Go 1.61 – Go implementation of gRPC for HTTP/2 based RPC.

  • Roaring 1.9 – Roaring bitmap data structure implementation.

  • Expr 1.16 – Expression language and expression evaluation.

  • uuid 1.6 – Google's RFC 4122 UUID package.

  • Lego 4.15 – Let's Encrypt/ACME client and library.

  • BlueRPC – Maintain type safety between Go and TypeScript.