#546 — March 19, 2025 |
|
Go Weekly |
![]() |
Traversal-Resistant File APIs — Among the lesser known new features in recent versions of Go are some ways to improve file system security when end user input might have an impact on file paths your app tries to access, including Damien Neil |
Were Multiple Return Values a Mistake for Go? — An interesting technical post critiquing the effects of one of Go’s earliest design decisions. This is an area where opinions will differ strongly, but the author thinks Go sorely needs to support tuples. Mond |
![]() 📅 Live Workshop: Build Production-Ready Apps with JavaScript & Go — Join Maximiliano Firtman next week (online or in-person) for a 3-day workshop, learning how to build real-world, fully functional web apps using vanilla JS & Go. Create performant, scalable apps. Frontend Masters sponsor |
TypeScript's Go Port Already Leading to Optimizations for Go — Last week’s big news was about the TypeScript compiler being ported to Go for performance reasons. A neat side effect of such a large project entering our ecosystem is the increased potential for even more performance improvements for Go itself, something that has already begun to occur.. GitHub Go Repo |
Go Structs and Interfaces Made Simple — An introduction (or refresher) of Go’s core building blocks when it comes to working with data types and structs – an approach that differs somewhat from those favored in object oriented languages like C++ or Java. Deven J (Stream) |
📄 Benchmarking: What You Can't Miss in Go 1.24 Jakub Jarosz 📄 How GitHub Engineers Learn New Codebases Brittany Ellich (GitHub) 📺 How to Implement Server-Sent Events in Go Alex Pliutau |
🛠 Code & Tools |
![]() |
doomgeneric: Doom, Ported to Go? — If classic 90s FPS Doom can be ported to JavaScript and made to run inside a PDF, a Go port should be a piece of cake, right? Here’s a little slice of magic involving using the ccgo C-to-Go compiler. Don't get too excited though as it's a limited proof of concept and Linux only, but it's neat to see what cznic |
golang-set: A Simple, Well-Tested, Generic Set Type — “Until Go has sets built-in…use this.” The latest v2.8 release adds support for Go 1.23’s range-over-func iteration. Ralph Caraveo |
🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today. WorkOS sponsor |
DiceDB: A Reactive, In-Memory Database Optimized for Modern Hardware — A new Go-powered database! Dice is a reactive database where your clients subscribe to receive changes immediately and it seems to take a lot of inspiration from the Redis approach being both in-memory and with simple Redis-like commands. GitHub repo. DiceDB |
Participle: A Simple Library for Defining Parsers — Provides a straightforward yet idiomatic way to define parsers in Go using a familiar approach of using struct field tags to define a grammar, so if you’ve used Alec Thomas |
|