Hey Gophers! 👋 Ever feel like your Go toolkit could use a refresh? Today, we’re spotlighting five new (or newly updated) tools that can seriously upgrade your workflow—whether you’re building AI apps, squeezing out performance, or diving into embedded systems. Let’s jump in!
1️⃣ redis/go-redis v9.10.0 (Vector Sets)
What it is: The popular Redis client for Go, now with experimental vector set support.
Why it’s cool: Unlock AI/ML superpowers in Redis! Store and query vector embeddings (think: semantic search, recommendation engines) without leaving your Go app.
Simple use case:
// Store & query vectors
client.Do(ctx, "VSET", "user_embeddings", "id123", []float32{0.1, 0.8, -0.2})
result := client.Do(ctx, "VSEARCH", "user_embeddings", "K=5", "VECTOR", queryVector)
2️⃣ gorse-io/goat
What it is: A Go assembly transpiler that converts C code to Go assembly.
Why it’s cool: Turbocharge performance-critical code by leveraging C’s optimizations (like SIMD instructions) in Go.
Simple use case:
goat -i optimized.c -o optimized_amd64.s # Transpile C to Go assembly
Then call it from Go:
// Go wrapper
func FastMatrixMul(a, b []float64) []float64 { ... }
Ideal for: Math-heavy workloads (e.g., data processing) 🚀
3️⃣ hybridgroup/tinygo-tkey
What it is: A library for programming the Tillitis TKey-1 (open-source USB security key) using TinyGo.
Why it’s cool: Build ultra-secure embedded apps with Go—think hardware-backed auth or cryptographic tools.
Simple use case:
import "github.com/hybridgroup/tinygo-tkey"
func main() {
tkey.BlueLEDOn() // Control hardware directly!
// Sign data with the key’s secure enclave
signature := tkey.Sign([]byte("LOCK"))
}
Great for: DIY security keys or hardware-bound secrets 🔒
4️⃣ BrownNPC/Raylib-Go-Wasm
What it is: Raylib bindings for Go + WebAssembly.
Why it’s cool: Build 2D games or visualizations in Go and run them in the browser.
Simple use case:
import rl "github.com/BrownNPC/Raylib-Go-Wasm/raylib"
func main() {
rl.InitWindow(800, 600, "Go in Browser!")
for !rl.WindowShouldClose() {
rl.DrawText("Hello, WASM!", 100, 100, 20, rl.Black)
}
}
Build: Web-based games, interactive demos, or data viz 🎮
5️⃣ asdf-vm/asdf
What it is: A multi-language version manager (not Go-specific, but a lifesaver for Gophers).
Why it’s cool: Switch between Go versions (or Node/Python/Ruby) per-project with one command.
Simple use case:
asdf plugin-add golang
asdf install golang 1.22.1
asdf local golang 1.22.1 # Sets version for current project
No more: go version conflicts across projects! ✨
Wrapping Up
These tools open doors to new domains (AI, embedded, gaming), boost performance, and simplify workflows. Try one in your next project:
Store vectors with go-redis/v9 → GitHub
Optimize C code with goat → GitHub
Hack hardware with tinygo-tkey → GitHub
Build WASM games with Raylib-Go-Wasm → GitHub
Manage versions with asdf → GitHub
Go explore—and level up your 2024 code! 🚀
Cover image via GopherCon. Tools sourced from Go Weekly.
What’s your favorite new tool? Share below! 👇
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.