#​499 — March 12, 2024

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

High-Speed Packet Transmission in Go: From net.Dial to AF_XDP — How can you send as many packets per second as possible from a Linux machine using Go? Andree wanted to find out. As he says, “it should be a fun read if you like networking, Go, and benchmarking”, but you can go straight to the code, if you prefer.

Andree Toonk

📉 The One Billion Row Challenge in Go: From 1m45s to 3.4s in Nine Solutions — We linked to the One Billion Row Challenge in issue 497, but here Ben gets much closer to the fastest Java solution and walks through each optimization clearly.

Ben Hoyt

Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.

Ardan Labs Consulting sponsor

Go 1.22.1 and Go 1.21.8 Released — As we suggested last week, these Go releases indeed landed soon after we published, but they’re still worth being on your radar as they include security fixes for issues in crypto/x509, net/http, net/http/cookiejar and html/template.

Michael and Carlos for the Go Team

The Missing Type in the Go Standard Library: Date? — The standard library offers a single type for both dates and times which can cause issues when timezones or certain types of interactions get involved. Hardfin has created a package, go-date, to take date representations a little further.

Danny Hermes (Hardfin)

QUICK BITS:

Creating a Postgres Logical Replication System in Go — The folks behind the (Go-powered) Dolt database are working on a feature to replicate data from Postgres and share what they’ve learnt so far in this detailed post.

Zach Musgrave (Dolthub)

The Dysfunctional Options Pattern — How to set optional configs without 'cooking up lasagna layers of functional indirections,' by way of a more builder-like approach.

Redowan Delowar

Tuple 'Makes Pair Programming with Co-Workers and Friends Fun Again' — Try Tuple for free and find out why staff engineers at Figma can't stop talking about Tuple.

Tuple sponsor

A Few Modern git Commands and Features You Should Be Using
Martin Heinz

▶  Why I Switched from Python to Go for AI Deployment
Code in a Jiffy

🛠 Code & Tools

goqite: A Persistent Message Queue Library atop SQLite — Inspired by Amazon’s Simple Queue Service (SQS), goqite is a SQLite-backed persistent message queue for Go apps that lets you bring your own SQLite driver.

Maragu ApS

FormStream: A Streaming Parser for multipart/form-data — A streamer for multipart form data as commonly used on the Web to send file uploads. Offers wrappers for use with net/http, Echo, and Gin.

Shunsuke Wakamatsu

Yaegi 0.16.0: Yet Another Elegant Go Interpreter — A Go interpreter to enable Go to be used for scripting within other apps, interactive shells, or for quick prototyping. It boasts complete support of the Go spec too.

Traefik

🧬 SeqKit 2.8: A Go Toolkit for FASTA/Q File Manipulation — Perhaps only a handful of readers will find this useful but it’s neat to see Go being used in biochemistry. FASTA/Q are formats for storing nucleotide sequences, as used in DNA/RNA analysis. GATTACA!

Wei Shen

📰 Classifieds

🪝Hookdeck: A managed reliability & observability layer for webhooks & async messaging. Receive, transform, route, & deliver events at scale.


🐘 Postgres user? Check out our sister newsletter, Postgres Weekly.

🏏 CricLang: A Programming Language for Cricket Enthusiasts — Cricket, the ball game, not the insect. It’s an experimental DSL of sorts for modelling cricket related scenarios – a bit of fun!

Manthan Gupta

  • 🛠 Fx 32.0 – A powerful JSON viewer and processor for the terminal, that now supports YAML too! There's also a Docker image-based version now available.

  • Go-MySQL-Driver 1.8 – MySQL driver for database/sql.

  • 👄 Charm Lip Gloss 0.10 – Style definitions for nice terminal layouts.

  • Vitess 19.0 – Clustering system for horizontal scaling of MySQL.

  • Chroma 2.13 – Pygments-inspired syntax highlighter.

  • Vale 3.3 – A linter for natural language/prose.

  • Nuke 1.3 – Memory arena implementation.

  • TinyGo 0.31.2