#​483 — November 7, 2023

Unsub  |  Web Version

Together with  Dragonfly

Go Weekly

Charm Raises $6M to Build the Next Generation of the Command Line — Like much of the Go community, we’ve been huge fans of Charm’s approach to building useful Go-based tools and CLI libraries (such as Bubble Tea), so this is fantastic news. It’s mostly not about the money raised, either, but a roundup of Charm’s work in the area of CLI development and the projects they’ve released so far.

Toby Padilla and Christian Rocha (Charm)

Why a Team Used Go Instead of Rust to Develop a Desktop AppKrater, a desktop app for debugging Laravel apps, was initially developed in Rust using Tauri, but shifted to using Go with Wails due to Go’s developer experience.

Ronald Pereira

A Data Store Built for Modern Workloads — Dragonfly is a drop-in Redis replacement. Applications built on Dragonfly get the speed, reliability, and scalability that modern apps require, allowing you to deliver incredible experiences to your users while reducing costs and complexity.

Dragonfly sponsor

Go, Containers, and the Linux Scheduler — If you’re running Go in containers, the runtime will create one thread per CPU core regardless of any limit set by the container runtime. This can lead to significant GC cycle times, but GOMAXPROCS is your friend and it’s easy to apply.

River Phillips

QUICK BITS:

Generic Sorting in Go 1.21: A Tale of Two Performances — An analysis of the performance of the new generic slices.Sort function introduced in Go 1.21 reveals that while it provides a faster sorting method for numbers, it unexpectedly underperforms when sorting strings. This issue on GitHub might help you understand why, and how it may be resolved.

Andreas Auernhammer

Running the “Reflections on Trusting Trust” Compiler — Russ tells the story of Ken Thompson (co-creator of Unix) giving a talk on how to create a backdoor in a C program in the early 80s, which Russ attempts to recreate in Go.

Russ Cox

📰 Classifieds

Join Sticker Mule's "kick ass" team as a Site Reliability Engineer! Our software team operates from 17 countries and we're looking for more exceptional engineers to join our Security team.


Lead a team of engineers to shape the future of live video at Dyte: Lead an engineering team responsible for critical backend systems and APIs. Optimize, scale, and play a pivotal role in shaping product direction.


💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

How We Reduced oapi-codegen's Dependency Overhead by ~84% — How to reduce the size of a module’s dependencies by taking advantage of module pruning. (More on the actual release, below.)

Jamie Tanna

Exploring Columnar Compression Challenges in Go
Jamie Brandon

🛠 Code & Tools

oapi-codegen v2: OpenAPI Client and Server Code Generator — A popular set of utilities for generating Go boilerplate code for services based on OpenAPI 3.0 API definitions, now with far fewer dependencies than before. If you want to see how to use it, start here.

DeepMap, Inc

The Redis Client for Go v9.3 – Now with JSON — The official Redis client takes a big step forward with direct support for JSON (which is directly supported by Redis when using the RedisJSON module).

Redis Team

Free Course: Introduction to Temporal Cloud — Check out our new course on the role and features of Temporal Cloud, designed for new and experienced users alike.

Temporal Technologies sponsor

DoltgreSQL: Postgres-Compatible Database with Version Control FunctionalityDolt is a long-standing Go-powered database providing a ‘git for data’-style experience with branching, cloning, merging and more, using the MySQL wire protocol. DoltgreSQL offers the same but emulates a Postgres server.

Daylon Wilkins

env 10.0: Parse Environment Variables to Structs — Simple, no dependencies, and supporting all built-in types as well as time.Duration, encoding.TextUnmarshaler and url.URL – you can define a custom parser function for any other type you want to support, too.

Carlos Alexandro Becker

GoLeak 1.3: Goroutine Leak Detector — Use this to detect if there are any unexpected goroutines running at the end of a test.

Uber Engineering

💬 QUOTE

“The best programs are the ones written when the programmer is supposed to be working on something else.”

___
Melinda Varian