#​535 — December 10, 2024

Unsub  |  Web Version

Together with  Frontend Masters logo

Go Weekly

🕒 Coming in Go 1.24: An Experiment for Time and Concurrency Testing — A look at another feature coming to Go 1.24 early next year. This time it’s the experimental testing/synctest package which opens up some added opportunities for testing code involving time or concurrency: “It seems that testing/synctest will significantly improve testing code that involves time or concurrency. At work, I’ve already tried it on some flaky tests like the ones above and it’s helped.”

Dan Peterson

What's Missing from Go's Generics? — Follow-up to an article we recently linked that posited that Go’s generics are ‘incomplete’ which spurred some lively discussion. Here, Nick responds to that discussion with specific features and how Go may or may not benefit from their inclusion.

Nick Tobey (DoltHub)

Master the Basics of Go — Join Maximiliano Firtman for this detailed video course covering the fundamentals of all things Go. You'll gain a thorough understanding of structures, goroutines, channels, async API calls, and much much more.

Frontend Masters sponsor

IN BRIEF:

Templ vs Gomponents vs html/template — A comparison of three view related libraries for Go, including old favorite html/template (which, perhaps unfairly, gets a one star rating).

Ewen Quimerc’h

📄 Building BLE Applications with BleuIO and Go – BLE meaning Bluetooth Low Energy, in this case. They have a device they’re trying to sell, but it’s interesting to get a basic look at the idea. BleuIO

📄 Data Structures as Jigs for Programmers (Go Edition) Daniel Lemire

📄 Mitigating SSRF Vulnerabilities in Go Liran Tal (Snyk)

📄 Disable Slog Messages in Go Tests Ben E. C. Boyter

🛠 Code & Tools

Soft Serve 0.8: A Self-Hostable Go-Powered Git Server — Another handy project from the folks at Charm. Soft Serve is a self-hostable Git server that offers up a nice terminal UI (TUI) over SSH, has various access control features for collaborative use cases, and even supports Git LFS.

Charm

⚙️ Orchestrion: Compile-Time Auto-Instrumentation for Go — Instrumenting code is tedious and inconsistent when done manually, but automating it is difficult. Enter Orchestrion, which injects instrumentation at compile-time and supports many third-party libraries so you can instrument your code, create tracers, etc. without changing the dev process.

Datadog Team

Zero Ops Apache Kafka Replication and Data Mirroring — Moving to WarpStream to reduce your Kafka costs by 80+% and simplify ops is easy with 1:1 replication provided by Orbit.

WarpStream sponsor

go-wasm-http-server 2.0: Embed Go HTTP Handlers in a Service Worker — Embed your Go HTTP handlers in a Service Worker using WebAssembly and emulate an HTTP server browser-side. Some of the examples might give you some inspiration.

Nicolas Lepage

Goverter: A Type-Safe Go Converter Generator — Generate type-safe converters by writing signatures of the type conversions and then Goverter will write the code you need to make it happen. GitHub repo.

Jannis Mattheis

Echo: Extensible, Minimalist Go Web Framework — Though it’s not too minimal, offering HTTP routing, automatic TLS, data binding, templating, middleware, and different ways to render data out of the box. v4.13.0 removes the JWT middleware from Echo core due to security issues. GitHub repo.

LabStack LLC

GTML: Make Writing HTML in Go a Breeze — This package touts itself with “Think of it like JSX for Go,” allowing you to take an HTML-like syntax and generate a StringBuilder that renders it in Go code.

Phillip England

📰 Classifieds

How Authorization fits into the Architecture of Secure AI RAG stacks? Watch AuthZed CEO Jacob Moshenko addressing this topic, and more with The Cube.


📬 Hookdeck: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.


👋 Tired of failures and outages? Let Temporal keep your code running flawlessly. Start on Temporal Cloud with $1,000 in free credits.

gARM: An ARM64 Compiler for Go — The author thinks we can do better than Go’s assembly approach for high performance ARM64 use cases, so has set out to make his own approach. It's early days, however.

Sven Woldt