---
title: "It's Go vs Rust again"
publication: "Go Weekly"
issue: 478
published_at: "2023-10-03"
canonical_url: "https://golangweekly.com/issues/478"
---

Plus a native Go SSH client, and Rob Pike's off to Australia. |        

#​478 — October 3, 2023 

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

Together with [![Three Dots Labs\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_953,h_262/e_make_transparent/co_white,e_outline:12/xcwl1qvzr9sdxpbcami1.png)](https://threedots.tech/event-driven/?utm_source=golang-weekly)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/w6bzpvbuo9o4ffcuaxbb.jpg)](https://www.shuttle.rs/blog/2023/09/27/rust-vs-go-comparison)  

[Rust vs Go: A Hands-On Comparison](https://www.shuttle.rs/blog/2023/09/27/rust-vs-go-comparison) — Despite all their differences, Rust and Go [are](https://thenewstack.io/rust-vs-go-why-theyre-better-together/) [frequently](https://blog.logrocket.com/when-to-use-rust-when-to-use-golang/) [compared.](https://bitfieldconsulting.com/golang/rust-vs-go) Someone who's predominantly a Rust developer has given the idea another go, focusing on the practicalities of building an HTTP service in both. It’s not perfect, but remains pretty fair. 

Matthias Endler (Shuttle)   

[Deconstructing Type Parameters](https://go.dev/blog/deconstructing-type-parameters) — If the definition `func Clone[S ~[]E, E any](s S) S` sends a shiver down your spine, this post on the official Go blog breaks down the ideas involved into a more easily digested form. 

Ian Lance Taylor   [![\](https://copm.s3.amazonaws.com/95876832.png)](https://threedots.tech/event-driven/?utm_source=golang-weekly) 

[Final Call: Last Chance To Learn Event-Driven Go in 2023!](https://threedots.tech/event-driven/?utm_source=golang-weekly) — The job market is tough for average developers today. Don't miss this chance to improve your skills and stand out among other candidates. Level up your career by building real-life Event-Driven systems. Learn by writing code — no videos to watch. 

Three Dots Labs sponsor   

_QUICK BITS:_ 

- 📅 Rob Pike has been confirmed as a speaker at [GopherConAU 2023](https://gophercon.com.au/) which takes place in Sydney, Australia on November 8-10.
- [pcz](https://github.com/primecitizens/pcz) is a curious, experimental 'reimagining' of Go that uses the (unmodified) official toolchain but offers its own stdlib and targets alternative use cases. It even has a Web SDK enabling things [like this.](https://primecitizens.github.io/livedemos/10-plat-web/)
- Over on Reddit, InfluxDB's creator Paul Dix [shared some insights on why InfluxDB switched from Go to Rust.](https://old.reddit.com/r/rust/comments/16v13l5/influxdb_officially_made_the_switch_from_go_rust/k2qd8t9/)
- 👾 [GoBC 1.0](https://github.com/duysqubix/gobc) is a Game Boy emulator created entirely in Go.
- HashiCorp's Mitchell Hashimoto makes the case for [reorienting GitHub pull requests around changesets.](https://mitchellh.com/writing/github-changesets)   

[Learn Go with Tests: Working without Mocks](https://quii.gitbook.io/learn-go-with-tests/testing-fundamentals/working-without-mocks) — The popular [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests) resource has gained a new chapter looking at various ways to fake dependencies, the pros and cons of each, along with examples. Good tests rely on good design, so the scope here goes well beyond stubs and fakes. 

Learn Go with Tests   

[One Developer's Preferred Go Stack](https://jtarchie.com/posts/2023-09-30-my-preferred-go-stack) — One developer’s preferred set of libraries. Opinions will vary, but it's nice to share. 

JT Archie   

[Compile-Time Safety for Enumerations](https://vladimir.varank.in/notes/2023/09/compile-time-safety-for-enumerations-in-go/) — A possible approach to improve the compile-time safety of enumerations in Go. _Elegant?_ Not so much. 

Vladimir Varankin   

[Using AWS Lambda with Go to Generate On-Call Calendars](https://www.dolthub.com/blog/2023-09-29-go-aws-on-call-schedule/) — A fun side project that showcases using the AWS SDK with Go and various AWS services to provide a handy ICS feed while demonstrating how Go makes a good choice for building serverless functions. 

Jason Fulghum   

[Feel the Power of More Than 420,000 Teammates and Work #LikeABosch](https://www.bosch.com/careers/why-bosch/culture-and-benefits/?utm_campaignid=golang&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=secondary&utm_content=recognition) — It’s our people who make us remarkable. Our success is your success. Let’s celebrate together. [Learn more](https://www.bosch.com/careers/why-bosch/culture-and-benefits/?utm_campaignid=golang&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=secondary&utm_content=recognition). 

Bosch sponsor   

[Securing Go APIs with Decentralized Identity Tokens](https://thenewstack.io/secure-go-apis-with-decentralized-identity-tokens-part-1/) 
Robert Kimani (The New Stack)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/btymans62elszce87rzf.jpg)](https://github.com/AllenDang/giu)  

[Giu 0.7: _Dear ImGui_-Based Cross Platform GUIs for Go](https://github.com/AllenDang/giu) — Another way to create GUI apps. [Dear ImGui](https://github.com/ocornut/imgui) is a popular GUI library (for C++) that generates idiosyncratic UIs aimed at power users rather than typical UIs. 

Allen Dang   

[go-jsonschema: Generate Go Data Types from JSON Schemas](https://github.com/omissis/go-jsonschema) — Generates data types and structs corresponding to a schema, along with un-marshalling code that validates the input JSON according to the schema’s validation rules. 

Claudio Beatrice       

📰 Classifieds   

📑 Learn how Temporal OSS delivers durable execution for your services and applications in this [Go SDK developer’s guide](https://t.mp/45RuJVA). 

--- 

💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. [Create a free profile now](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job).      

[Goph 1.4: A Native Go SSH Client](https://github.com/melbahja/goph) — Supports connections using passwords, private keys, keys with passphrases, doing file transfers, etc. 

Mohamed El Bahja   

[Gotify Server: A Real-Time Messaging Server for Webapps](https://gotify.net/) — A Go-powered service you can self-host to provide simplified real-time messaging within a webapp by sending messages via a REST API and having those delivered to end users over WebSockets. [GitHub repo.](https://github.com/gotify/server) 

Gotify   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gq7lhqkj4pasanmmldh8.jpg)](https://www.repotrends.com/)  

[Repo Trends: View and Analyze Trends in GitHub Issues Over Time](https://www.repotrends.com/) — A nicely designed tool that displays visual data for open issues and pull requests on a given GitHub repository. Check out [the stats for `golang/go`](https://www.repotrends.com/golang/go), for example. 

Steve Sanders   

[Boxes and Glue: A TeX-Inspired Typesetting Library](https://github.com/speedata/boxesandglue) — A PDF typesetting library using _“the spirit of TeX’s algorithms”_ to lay out elements onto the page. The [sample code](https://github.com/speedata/boxesandglue#sample-code) will help you get the idea. 

speedata GmbH   

[Countdown 1.5: Terminal Countdown Timer](https://github.com/antonmedv/countdown) — Run `countdown 168h` to count down to the next newsletter, maybe? :-) 

Anton Medvedev   

- [FastHTTP 1.50.0](https://github.com/valyala/fasthttp#readme) – Performance-oriented alternative to `net/http` for [specific scenarios.](https://github.com/valyala/fasthttp#fasthttp-might-not-be-for-you)
- [Go Imagick 3.5](https://github.com/gographics/imagick) – Go binding to ImageMagick's MagickWand C API.
- [msgpack 5.4](https://github.com/vmihailenco/msgpack) – MessagePack encoding for Go.         

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
