Forget TypeScript, how about porting Doom to Go?

#​546 — March 19, 2025

Unsub  |  Web Version

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 os.Root, filepath.IsLocal, filepath.EvalSymLinks and filepath.Localize. A must read.

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 ccgo is capable of.

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 encoding/json before, you’re well on your way.

Alec Thomas

  • Glamour 0.9 – Stylesheet-based Markdown rendering for CLI apps, now with better syntax highlight and tables.

  • Toxiproxy 2.12 – Simulate 'chaotic' network conditions in both testing and development environments.

  • 🐍 Viper 1.20 – Config solution for Go apps supporting various file formats and environment variables.

  • 📰 Fusion 0.9 – Lightweight, self-contained feed aggregator and reader. Built with Go, SQLite, and Svelte.

  • go-github v70.0.0 – Go client library for accessing the GitHub API v3.

  • River v0.19 – Robust job processing system for Go and Postgres.

  • GoReleaser v2.8 – Mostly improvements to the Pro version.

  • TOML 1.5TOML config file parser for Go.

https://golangweekly.com/issues/546

Creato 6d | 19 mar 2025, 18:10:06


Accedi per aggiungere un commento