#​520 — August 27, 2024

Unsub  |  Web Version

Together with  WorkOS

Go Weekly

Range Over Function Types in Go 1.23Go 1.23 was released just two weeks ago with one of the headline features being improvements to iteration, principally for/range support over function types. There’s a lot more to it than that, though, and Ian rounds up everything, complete with examples and guidance.

Ian Lance Taylor

TinyGo 0.33.0: The Go Compiler for 'Small Places'TinyGo is a fantastic LLVM-based Go implementation targeting use cases like microcontrollers and WebAssembly. v0.33.0 brings it up to Go 1.23 standards, adds WASI preview 2 support, and more.

TinyGo Team

WorkOS: The Modern Identity Platform for B2B SaaS — WorkOS is a modern identity platform for B2B SaaS, offering flexible and easy-to-use APIs to integrate SSO, SCIM, and RBAC in minutes instead of months. It's trusted by hundreds of high-growth startups such as Perplexity, Vercel, Drata, and Webflow.

WorkOS sponsor

The 4-chan Go Programmer (or Sending Channels Over Channels) — No, not that '4chan.' Zach looks into the idea of using channels to pass other channels around, and takes it to the extreme of creating channels that channel channels that channel channels that channel channels. I need to go for a lie down..

Zach Musgrave

sync.Pool and the Mechanics Behind It — What sync.Pool is all about, how it’s used, what’s going on under the hood, and everything else you might want to know, complete with helpful illustrations.

Phuong Le

📄 Designing a Robust Integration Test Suite for Convoy’s Data Plane with TestContainers Oluwalana and Mekiliuwa (Convoy)

📄 'Go is My Hammer, and Everything is a Nail' – You can use Go for everything. Markus Wüstenberg

📄 How Go's Testing Harness Works – What happens when you run go test? Matt Proud

📄 Using Functional Options Instead of Method Chaining Jon Calhoun

🛠 Code & Tools

sqlite-vec: A Vector Search Extension for SQLite — If using a dedicated vector storage database is beyond your immediate requirements, you can now use SQLite for the task. While this is an SQLite extension, it’s easy to use with numerous languages, including Go, as shown here.

Alex Garcia

moq: An Interface Mocking Tool for go generate — A tool that generates a struct from any interface. The struct can be used in test code as a mock of the interface. Now supports imported type aliases.

Mat Ryer

Streamline Your Product Delivery with monday dev — From ideation to launch, monday dev makes product delivery faster and simpler, all in one place.

monday dev sponsor

Permify 1.0: Open Source Authorization as a Service — A long standing Go-powered system for building fine-grained authorization systems, inspired by Google’s Zanzibar. Get started with the intro guide.

Permify

cast 1.7: Safe and Easy Casting from One Type to Another — It’s as easy as using ToString, ToInt, ToTime, and more.

Steve Francia

go-github v64.0: A Go Client for the GitHub v3 API — For the REST API. For the v4 GraphQL API use this instead.

Google

Dbmate: A Lightweight, Framework-Agnostic Database Migration Tool — Written in Go but can be used alongside database-using apps written in any language. Supports MySQL, Postgres, SQLite, ClickHouse, BigQuery, and Spanner.

Adrian Macneil

📰 Classifieds

Dragonfly (25k GitHub stars) is a modern Redis replacement. Organizations that switch to Dragonfly can reduce infrastructure costs by 80%.


Boost your PostgreSQL skills with Redgate’s 101 webinar series of easy-to-follow, expert hosted sessions. It’s PostgreSQL, simplified.

🎁 And one for fun..

Tetrigo: TUI-Powered Tetris Written in Go — Whether you want to just play Tetris, create your own Tetris game, or perhaps implement your own quirky Tetris game mode using Go, this implementation is for you. It’s well structured and uses Charm’s Bubble Tea behind the scenes.

Broderick Westrope