Explaining Go's WebAssembly System Interface support

Plus a simple Go static server, looking at JSON with 'fx', and gocron springs back into life. |

#​476 — September 19, 2023

Unsub  |  Web Version

Together with  Fusion Auth

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

n

Older messages

Let's get optimizing

Tuesday, September 12, 2023

Plus some love for the Go gopher, and Go takes 8th place in IEEE's language roundup. | #​475 — September 12, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Profile-Guided Optimization

'Cgo performance is good actually'

Tuesday, September 5, 2023

Plus how Go 1.21 enables truly reproducible builds. | #​474 — September 5, 2023 Unsub | Web Version Together with Teleport logo Go Weekly Perfectly Reproducible, Verified Go Toolchains — Go 1.21

'There will not be a Go 2 that breaks Go 1 programs.'

Tuesday, August 29, 2023

Plus RIP to AWS Lambda's Go runtime, a big TinyGo update, and an official introduction to 1.21's structured logging. | #​473 — August 29, 2023 Unsub | Web Version 👋 We're back! Well, almost

Go 1.21 released

Tuesday, August 8, 2023

Plus cross-platform sound from Go, a new dependency security tool, and we're off for a few weeks. | #​472 — August 8, 2023 Unsub | Web Version ⛱ I'm taking two weeks off and will be back on

The Go team's new project templating tool

Tuesday, August 1, 2023

Plus the Go survey is back, a 400 line Go git client, and Google Cloud Functions gets Go 1.21. | #​471 — August 1, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Experimenting with Project

You Might Also Like

Software Testing Weekly - Issue 220

Saturday, May 18, 2024

Software Testing Conferences 📚 View on the Web Archives ISSUE 220 May 18th 2024 COMMENT Welcome to the 220th issue! Have you ever been to a testing conference? They're a great way to learn about

📶 Is a Cellular iPad Worth It? — How to Prevent YouTube From Taking Over Your Screensaver

Saturday, May 18, 2024

Also: This Robot Vacuum Can Clean Stairs, and More! How-To Geek Logo May 18, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your inbox by

Weekend Reading — Objection-oriented programming

Saturday, May 18, 2024

This week we find a power-up box, replace GitHub Actions with Maven XMLs, avoid the worst website in the world, revisit RTO policies, “listen” to OpenAI employees, watch our Slack private messages, do

Daily Coding Problem: Problem #1445 [Easy]

Saturday, May 18, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Jane Street. The United States uses the imperial system of weights and measures, which

You don’t have to take our word for it…

Saturday, May 18, 2024

You can probably tell how excited we are to re-launch our Gigantic courses – which bring on-demand product management training for today's modern Product Managers and Product Leaders. In fact, we

🐍 New Python tutorials on Real Python

Saturday, May 18, 2024

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: What Is the __pycache__ Folder in Python? In

Visualized | Life Expectancy by Region (1950-2050F) 📊

Saturday, May 18, 2024

This map shows life expectancy at birth for key global regions, from 1950 to 2050F. View Online | Subscribe Presented by Voronoi: The App Where Data Tells the Story FEATURED STORY Life Expectancy by

New Wi-Fi Vulnerability Enables Network Eavesdropping via Downgrade Attacks

Saturday, May 18, 2024

THN Daily Updates Newsletter cover The DevSecOps Playbook: Deliver Continuous Security at Speed ($19.00 Value) FREE for a Limited Time A must-read guide to a new and rapidly growing field in

🐍 New Python tutorials on Real Python

Saturday, May 18, 2024

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: What Is the __pycache__ Folder in Python? In

Toward 'local' AI w/ Apple's new chip

Saturday, May 18, 2024

faster than the cloud ☁️ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌