Explaining Go's WebAssembly System Interface support

#​476 — September 19, 2023

Unsub  |  Web Version

Go Weekly

fx 30: The Go-Powered Terminal JSON Viewerfx has long been a useful tool for looking at JSON files, but Anton has taken the opportunity to rewrite it from the ground up with a new themed TUI look, regex search, better wrapping, fuzzy search, and support for “even the most massive JSON files.” A fantastic tool that's a great example of what Go excels at.

Anton Medvedev

On WASI Support in Go — Recent versions of Go have introduced the ability to target WebAssembly and the WebAssembly System Interface (WASI) that enables WASM to interact with the outside world. This post covers the basics and shares where things stand with Go’s still-nascent support.

Brandhorst-Satzkorn, Fabre, Gryski, et al.

Add Fully-Featured Auth to Your Go App with Two Lines of Code — Easy, secure, and affordable: pick three. FusionAuth is auth built for devs, by devs.

FusionAuth sponsor

QUICK BITS:

  • If you use ChatGPT to help you with your Go code at all, its training cut-off date has changed to January 2022. A side effect of this, I've noticed, is it now recognizes that Go has generics and will emit code using them.

  • If you're a fan of JetBrains' GoLand IDE and are working with Rust too, they've unveiled RustRover, a similar IDE targeting Rust developers.

  • Did you know there's a Go-specific community on X/Twitter? There are about 1600 members so far.

  • Awesome Slog is an attempt to bring together links and resources about Go's new structured logging (slog) feature.

  • 🐘 PostgreSQL 16 was released late last week.

Crafting a Language Server in Go: A VSCode LSP for Lama2Lama2 (not to be confused with Meta’s Llama 2 LLM) is a plain-text-driven API manager and REST API client. The team behind this post used Go to create an LSP for Lama2 and have explained how it came together and why Go was a good fit.

Athreya aka Maneshwar

Use Your Database to Power State Machines — How to build a state machine using Go and your database to have clear states and transitions with concurrency-safe code, along with a consistent audit trail.

Lawrence Jones

A Developer’s Guide to Getting Started with Temporal — Use this Go SDK guide to see how Temporal OSS delivers durable execution for your services and applications.

Temporal Technologies sponsor

▶  Discussing Go Templating using Templ
The Go Time Podcast podcast

🛠 Code & Tools

PTerm: A TUI Framework for Go — An extensive library packed with components for improving the output of your command line apps, including things like charts, lists, trees, fancy logging, spinners, and more. Documentation site.

pterm project

static-server: An HTTP Server in Go for Static Content — Eli’s made it as simple as just running a single go run command to start serving up your current directory for local testing purposes. He explains more about the how and why in this post.

Eli Bendersky

Encore: The Developer Productivity Platform for Go Backend Development — Encore automates development tasks to shorten feedback loops, help collaboration, improve quality, and 2x productivity.

Encore sponsor

Maroto 1.0: Generate Entire PDFs within Go — Uses a particularly fluent, grid-based approach. Here’s a thorough code example of creating an invoice PDF, along with the resulting output.

Johnathan Fercher da Rosa

u: Adding an 'Unset' State to Go's Types — For when you want to know if a value has been set or not.

Lea Anthony

Goyave: An Elegant Go REST Framework — Provides structure, routing, a configuration system, and, importantly, pretty extensive documentation and sample code. GitHub repo.

Jérémy Lambert

  • Resty 2.8
    ↳ Simple HTTP / REST client library.

  • tproxy 0.8
    ↳ CLI tool to proxy & analyze TCP connections.

  • zap 1.26
    ↳ Fast, structured, leveled logging library.

  • Skipper 0.18
    ↳ HTTP router and reverse proxy for service composition.

  • Lux 0.20
    ↳ Video download library and CLI tool.

  • gocron 1.34
    ↳ A Go job scheduling package comes back to life.

  • compress 1.17
    ↳ Implements several compression algorithms.

  • rueidis 1.0.18
    ↳ High performance Redis client library.

Jobs

Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
Hired

https://golangweekly.com/issues/476

Created 1y | Sep 19, 2023, 3:20:03 PM


Login to add comment