---
title: "Taking Go to ARM SoCs, the ESP8266, and beyond"
publication: "Go Weekly"
issue: 331
published_at: "2020-09-25"
canonical_url: "https://golangweekly.com/issues/331"
---

Plus more Go news and links.       

#331 — September 25, 2020 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/331)   

Golang Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/njdy0s4nnwtveqyddiix.jpg)](https://github.com/f-secure-foundry/tamago)  

[TamaGo: Bare Metal Go for ARM SoCs](https://github.com/f-secure-foundry/tamago) — A framework that enables compilation and execution of Go apps on bare metal ARM System-on-Chip (SoC) setups (including the Raspberry Pi 2 and Zero so far). An ARM-only alternative to the more established [TinyGo](https://tinygo.org/), potentially, as TamaGo modifies the standard Go distribution while TinyGo is a distinct LLVM-based compiler. 

F-Secure Foundry   

[So How _Will_ Go Implement Generics?](https://groups.google.com/g/golang-dev/c/OcW0ATRS4oM) — Generics are coming to Go, that’s a given, but now how does it actually get implemented? Keith Randall presents two design documents with strategies for the task: [Stencilling](https://github.com/golang/proposal/blob/master/design/generics-implementation-stenciling.md) and [Dictionaries.](https://github.com/golang/proposal/blob/master/design/generics-implementation-dictionaries.md) _Note: Google login required for the golang-dev group._ 

Keith Randall   [![\](https://copm.s3.amazonaws.com/ccee7d50.png)](https://buildkite.com/?pk_campaign=golang_speed_nocr_ch_sept_20&pk_source=cp&pk_medium=newsletter) 

[Reduce Test Time Without Sacrificing Security 🚀](https://buildkite.com/?pk_campaign=golang_speed_nocr_ch_sept_20&pk_source=cp&pk_medium=newsletter) — Run your build infrastructure on your terms. Self-hosted agents mean the choice between the speed of cloud-native and security of on-prem is over. Buildkite works with all source code tools, languages and platforms, speeding up mobile tests at scale. Try now. 

Buildkite sponsor   

[TinyGo Gains Initial Support for the ESP32 and ESP8266](https://aykevl.nl/2020/09/tinygo-esp32) — If you’re familiar with microcontrollers, this is pretty exciting news as these ESP devices are cheap and popular. However, this is only an initial port with _“still a lot to be done”_ before you can take advantage of all their features like WiFi and Bluetooth. 

Ayke van Laëthem   

[The Go Time Podcast Chats with Brad Fitzpatrick](https://changelog.com/gotime/148) — Not only was Brad a fundamental part of Go’s core team, he founded LiveJournal and invented memcached too, so it’s great to hear his story – if you have the time. 

Go Time Podcast podcast     

**⚡️ Quick bytes:** 

- The [proposal](https://go.googlesource.com/proposal/+/master/design/draft-embed.md) for adding file embedding to Go has [been accepted](https://github.com/golang/go/issues/41191#issuecomment-697710797) with a target of Go 1.16.
- Caddy Server [2.2 is here](https://github.com/caddyserver/caddy/releases/tag/v2.2.0) with [ZeroSSL](https://zerossl.com/features/acme/) and HTTP/2 server push support.   

💻 Jobs  

[Stream Provides APIs for Building Activity Feeds and Chat](https://getstream.io/careers/job/backend-software-engineer-boulder-remote/) — Stream is looking for a full time Backend Software Engineer to join our development team. If you are interested in becoming a part of what we do, [apply now.](https://getstream.io/careers/job/backend-software-engineer-boulder-remote/) 

Stream   

[Sr. Software Engineer at CrowdStrike (Remote)](https://crowdstrike.wd5.myworkdayjobs.com/crowdstrikecareers/job/USA-Remote/Sr-Software-Engineer_R3806) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks. 

CrowdStrike   

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77582) — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers. 

Vettery  

📘 Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/nhm8mdu5oscegveygnk6.jpg)](https://blog.benjojo.co.uk/post/ip-over-fibre-channel-hack)  

[Hacking Ethernet Out of Fibre Channel Cards with Go](https://blog.benjojo.co.uk/post/ip-over-fibre-channel-hack) — One of my favorite technologists is back with a niche but interesting tale of putting some random cards he bought off eBay to use with Go code holding it all together. 

Ben Cox   

[Optimizing PGX Allocations in Go with Pprof](https://www.ldelossa.is/blog/allocation_optimization_in_go/) — [PGX](https://github.com/jackc/pgx) is a popular Postgres driver for Go and this post demonstrates the use of a profiler for improving it. 

Louis DeLosSantos   

[Running Go in the Browser with WASM and Web Workers](https://qvault.io/2020/09/23/running-go-in-the-browser-with-wasm-and-web-workers/) — Qvault (interactive coding courses in the browser) started using web workers and WASM in order to stream output from a program. This post is unsurprisingly JS-heavy, but shows how to compile Go for use with a worker. 

Lane Wagner   

[In-Process Caching in Go: Scaling lakeFS to 100k Requests/Second](https://lakefs.io/2020/09/23/in-process-caching-in-go-scaling-lakefs-to-100k-requests-second/) — A pretty basic idea here, but such things usually pay dividends. 

Barak Amar   

[Fan Out, Fan In While Maintaining Order](https://www.wwt.com/article/fan-out-fan-in-while-maintaining-order) — Writing an event processor in Go seems to be a rather common item. Following that first iteration with a refactored event processor is also quite common. 

Jake Walsh   

['Go Is Not Ready for Enterprise Systems Yet and Here’s Why'](https://t.co/TyQOyKCuMh?amp=1) — This is at the bottom of the opinions section because, well, it’s not a great read, but it got a bit of attention on social media, so here you go. The author tries to claim that Go is “too young” for the enterprise but their argument feels weak. 

Dmitry Afonkin  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/cjlfpzgdqtcgce9vh4ec.jpg)](https://github.com/blushft/go-diagrams)   

[go-diagrams: Create Beautiful System Diagrams with Go](https://github.com/blushft/go-diagrams) — Considers itself a ‘loose port’ of Python’s [diagrams](https://github.com/mingrammer/diagrams), a way of defining diagrams in code to then be rendered. 

blushft   

[goconst: Find Repeated Strings That Could Be Replaced by a Constant](https://github.com/jgautheron/goconst) 

Jonathan Gautheron   

[Troubleshoot Golang App Performance with Datadog APM](https://www.datadoghq.com/dg/apm/go-troubleshooting/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-GoWeeklyTroubleshootingS) — Inspect detailed flame graphs to identify bottlenecks, latency and other issues. Try Datadog APM free. 

Datadog APM sponsor   

[Ali: Generate HTTP Loads and Plot The Results in Real-Time](https://github.com/nakabonne/ali) — Go is fantastic at putting together tools like this. 

Ryo Nakao   

[logo-ls: Modern `ls` Command with VS Code-Like File 'Icons' and Git Integrations](https://github.com/Yash-Handa/logo-ls) — Add some icons and intelligence to your terminal listings. 

Yash Handa   

[Twirp 7.1: A Simple RPC Framework with Protobuf Service Definitions](https://github.com/twitchtv/twirp) — Define your service in a Protobuf file and this autogenerates Go code with a server interface and fully functional clients. Think gRPC, but without the custom HTTP server and transport implementations - it uses `net/http` instead. 

Twitch   

[Mouthful: A Self Hosted Go Powered Alternative to Disqus](https://github.com/vkuznecovas/mouthful) — For adding comment sections to your sites. [Demo here](https://mouthful.dizzy.zone/). 

Viktoras   

[Siegfried: Signature-Based File Format Identification](https://github.com/richardlehane/siegfried) — Uses several databases including those from the UK National Archives, freedesktop, Library of Congress, and Wikidata. I had no idea these places maintained such data, to be honest. [This demo](https://asciinema.org/a/ernm49loq5ofuj48ywlvg7xq6) shows off the point. 

Richard Lehane   

[Automated App Security for Go Web Apps.](https://link.sqreen.com/92TBqw9a) 

Sqreen sponsor   

[Dbmate: A Lightweight, Framework-Agnostic Database Migration Tool](https://github.com/amacneil/dbmate) — Written in Go but can be used alongside database-using apps written in any language. Supports MySQL, Postgres, SQLite and ClickHouse. 

Adrian Macneil   

[msfs2020-go: Connect to Microsoft Flight Simulator 2020 From Go](https://github.com/lian/msfs2020-go) — The latest [Flight Simulator](https://en.wikipedia.org/wiki/Microsoft_Flight_Simulator_%282020_video_game%29) from Microsoft is hugely realistic and well worth checking out in its own right, but if you want to try and get Go involved, here you go. 

lian         

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

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

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