---
title: "Speeding up with SIMD and Go assembly"
publication: "Go Weekly"
issue: 528
published_at: "2024-10-22"
canonical_url: "https://golangweekly.com/issues/528"
---

Plus some Go code generation magic, test parallelism, and working with Excel spreadsheets. |        

#​528 — October 22, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/528)  

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/a16vftzogcx14svhreu4.jpg)](https://evilmartians.com/chronicles/a-taste-of-go-code-generator-magic-a-quick-guide-to-getting-started)  

[A Taste of Go Code Generator Magic: A Quick Guide to Getting Started](https://evilmartians.com/chronicles/a-taste-of-go-code-generator-magic-a-quick-guide-to-getting-started) — There aren’t many tutorials on Go code generation, which inspired the author to show how they created a program to generate boilerplate to wrap functions. You, too, could generate some code and free time. 

Valentin Kiselev (Evil Martians)   

[Leveraging `benchstat` Projections in Go Benchmark Analysis](https://www.bwplotka.dev/2024/go-microbenchmarks-benchstat/) — [benchstat](https://pkg.go.dev/golang.org/x/perf/cmd/benchstat) is a stdlib tool that compares and contrasts benchmark data generated by Go benchmark tests. This post brings you _up to speed_ with what benchstat offers and why you might want to use it. 

Bartek Płotka   [![\](https://copm.s3.amazonaws.com/159acc09.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go Beyond Limits with Golang, Rust, Docker & K8s](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Struggling with tech challenges? Ardan Labs offers unparalleled consulting in Go, Rust, Docker, and Kubernetes. Enhance your development speed, optimize your architecture, and manage tech debt. Propel your team to new heights with our expertise! 

Ardan Labs Consulting sponsor   

[Speeding Up Calculations 450% with Go Assembly](https://pehringer.info/go_plan9_memo.html) — [Go’s assembler](https://go.dev/doc/asm) is heavily inspired by [Plan 9’s](https://9p.io/sys/doc/asm.html) (with Rob Pike and Ken Thompson, along with others, creating both). The author investigates using Go’s assembler to implement a particularly speedy SIMD (Same Instruction Multiple Data) library for Go. There’s also an interesting [thread on Hacker News](https://news.ycombinator.com/item?id=41879854) where Russ Cox (as `rsc`) adds some context. 

Jacob Ray Pehringer   

[Optimizing and Visualizing Test Parallelism: Why More Cores Don't Speed Up Your Go Tests](https://threedots.tech/post/go-test-parallelism/) — You’re probably aware of `t.Parallel()` to run tests in parallel, but did you know it can sometimes slow tests down? Robert runs through some tools and tactics to help visualize and optimize tests and when to bother running them in parallel. 

Robert Laszczak   

🗓️ [Enterprise Ready Conference](https://www.enterprise-ready.com/?utm_source=cpgolang&utm_medium=newsletter&utm_campaign=q32024) — One-day event in SF for prod/eng leaders building enterprise SaaS — with speakers from OpenAI, Vanta, Canva, Dropbox. 

WorkOS sponsor   

📄 [The Magic of the `internal` Folder](https://www.bytesizego.com/blog/golang-internal-package) – A tidy way to include things in a package that you don’t want other modules to depend on. Matt Boyle 

📄 [Three Easy Ways to Add a Version Flag in Go](https://jerrynsh.com/3-easy-ways-to-add-version-flag-in-go/) – All straightforward, but the author has a definite favorite. Jerry Ng 

📄 [How I Wrote Express-Go in 19 Hours](https://dev.to/brunociccarino/how-i-wrote-express-go-in-19-hours-3ndh) – [GopherLight](https://github.com/BrunoCiccarino/GopherLight) is an Express.js inspired framework, but for Go. Bruno Ciccarino 

📄 [How to Deploy a Gin App on Railway](https://docs.railway.app/guides/gin) – A new guide for the [Railway](https://railway.app/) app deployment platform. Railway  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ogxhaannyaeggfkb34vr.jpg)](https://xuri.me/excelize/)  

[Excelize 2.9: A Pure Go Way to Work with Excel Spreadsheets](https://xuri.me/excelize/) — Read and write XLAM / XLSM / XLSX / XLTM and XLTX files. A long time library that keeps going from strength to strength. [v2.9](https://github.com/qax-os/excelize/releases/tag/v2.9.0) is focused on _details_ and rolls out numerous new functions in a variety of areas like working on charts and image-based cells. [GitHub repo.](https://github.com/qax-os/excelize) 

QI-ANXIN GROUP   

[htmgo 1.0: Build Simple, Scalable System with Go and htmx](https://htmgo.dev/) — An interesting way to combine the simplicity of both Go and [htmx](https://htmx.org/) to quickly build interactive webapps. We mentioned it a few weeks ago, but it’s now at [version 1.0](https://github.com/maddalax/htmgo/releases/tag/v1.0.0) and considers itself ‘stable.’ 

maddalax       

📰 Classifieds   

🤖 Control Rag Access with [SpiceDB's Fine-Grained Permissions in Go and Open Source](https://authzed.com/use-cases/ai-retrieval-augmented-generation?utm_source=sponsored_newsletter&utm_medium=display&utm_campaign=golang_newsletter). 

--- 

🎓 [Join this course to learn the basics of Temporal](https://t.mp/3s01cdA) and use Temporal’s Go SDK to build an app that communicates with an external service.      

[ogen 1.5: OpenAPI v3 Code Generator for Go](https://ogen.dev/) — Best explained in [its introductory blog post](https://ogen.dev/blog/ogen-intro), ogen generates client and server implementation code from an OpenAPI spec. [GitHub repo.](https://github.com/ogen-go/ogen) 

tdakkota and Aleksandr Razumov   

[gh-dash 4.7: A CLI-Based Dashboard for GitHub](https://github.com/dlvhdr/gh-dash) — A TUI app for displaying a dashboard of pull requests and issues filtered however you like. 

Dolev Hadar   

[Sablier 1.8: An API for Running Containers on Demand](https://github.com/sablierapp/sablier) — .. and shutting them down automatically once there’s no activity. 

Alexis Couvreur   

- 🐘 [pgRoll 0.7](https://github.com/xataio/pgroll) – Zero-downtime, reversible schema migrations for PostgreSQL. Now supporting Postgres 17, which was [released a few weeks ago.](https://www.postgresql.org/about/news/postgresql-17-released-2936/)
- [Go-Redis 9.7](https://github.com/redis/go-redis) – Redis client library. [RediSearch](https://github.com/RediSearch/RediSearch) support is the big new feature.
- [Goldmark 1.7.8](https://github.com/yuin/goldmark) – Markdown parser compliant with CommonMark 0.31.2.
- [Toxiproxy 2.11](https://github.com/Shopify/toxiproxy) – TCP proxy to simulate chaotic network conditions.
- [sh 3.10](https://github.com/mvdan/sh) – Shell script parser, formatter, and interpreter.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
