---
title: "Building cgo code without a C compiler?"
publication: "Go Weekly"
issue: 617
published_at: "2026-09-11"
canonical_url: "https://golangweekly.com/issues/617"
---

Plus running LLMs in the browser from Go, a new Go core team member, and the Go 1.27 release party recording.        

#​617 — September 11, 2026 

[Read the Web Version](https://golangweekly.com/issues/617)  

Together with [![Three Dots Labs\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_289/e_make_transparent/co_white,e_outline:17/vonzxauqd8tsxfvqseup.png)](https://threedots.tech/go-backend/?utm_source=golangweekly)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sikfzyvz9e4ceuxex7f0.jpg)](https://github.com/golang/go/issues/81450)  

[Could Go Build cgo Packages _Without_ a C Compiler?](https://github.com/golang/go/issues/81450) — Cross-compiling with `import "C"` can be painful as it needs a C toolchain. This proposal would let packages that only call pre-built C libraries describe the interface in annotated Go files, so anyone building the package wouldn't need a C compiler. 

Matloob, Mui, et al. (Go Team)  

💡 Another approach is to skip cgo entirely, which the SIMD and Ebitengine items later in this issue do in two quite different ways…  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/6c0d0d51.png)](https://threedots.tech/go-backend/?utm_source=golangweekly) 

[Become a Confident Go Backend Engineer](https://threedots.tech/go-backend/?utm_source=golangweekly) — Build a production-grade Go backend and learn by coding. Practice the skills you need to guide your AI coding agents. Hands-on online training from the authors of Watermill. Opens in the coming weeks. [Join the waitlist](https://threedots.tech/go-backend/?utm_source=golangweekly). 

Three Dots Labs sponsor   

[How Debian Code Search Got Fast TurboPFor in Pure Go with SIMD](https://michael.stapelberg.ch/posts/2026-09-06-dcs-fast-turbopfor-go-simd/) — One for performance fans! A detailed write-up of using Go’s experimental [`simd/archsimd` package](https://go.dev/doc/go1.26#simd) to replace a C library with native Go that runs _faster_. Covers PGO surprises, generics for compile-time specialization, AVX2/AVX512 kernels, and more. 

Michael Stapelberg   

**IN BRIEF:** 

- 🎉 JetBrains recently held a Go 1.27 'release party' featuring some of the Go team. [▶️ Watch the recording here](https://www.youtube.com/watch?v=UkswvuLfUMQ), including Robert Griesemer who explains why generic methods took so long to arrive.
- Long-time contributor `thepudds` (a.k.a. PJ) has [joined the core Go team](https://bsky.app/profile/thepudds.bsky.social/post/3mv63k52o322s). Russ Cox is a fan, [saying](https://bsky.app/profile/swtch.com/post/3mv65m6ranc2c) _"What a great hire for the Go team."_
- Go 1.28 seems likely to [reject `string(x)` for integers](https://github.com/golang/go/issues/3939#issuecomment-5606352422) other than `byte` or `rune`, in line with `go vet`'s warnings. (Rob Pike proposed this 14 years ago!)
- Jake Bailey has [some CLs in review](https://github.com/golang/go/issues/81315#issuecomment-5574451562) to make `encoding/json/v2` marshal slices ~4% faster than v1, after Daniel Lemire [found it 1.5x slower](https://lemire.me/blog/2026/08/29/the-new-go-json-api-twice-as-fast-or-1-5x-slower/) recently.   

🕹️ [Ebitengine 2.10: Now Pure Go on Desktop Platforms](https://ebitengine.org/en/blog/v2.10.0.html) — After years of effort, the popular 2D game engine no longer needs cgo on macOS, Linux or BSD (joining Windows in this regard) so cross-compilation is a lot easier. There’s also a new ability to run apps as a controllable guest process, either headlessly for testing or embedded into other apps. 

Hajime Hoshi  

💡 The cgo-free approach is made possible by [purego](https://github.com/ebitengine/purego), the Ebitengine team's library for calling C functions from Go without cgo.  

[Open Source Hits Frontier-Level Code Review at a Tenth of the Cost](https://agentfield.ai/github/pr-af/?utm_source=golang&utm_medium=newsletter&utm_campaign=golang-260911&utm_id=golang-260911-pr-af&utm_content=pr-af) — PR-AF places #2 of 42 on Martian's Code-Review-Bench. Verified findings only, self-hosted, any open model. 

AgentField.ai sponsor   

📄 [Four Ways to Do Super Fast Packet Processing in Go](https://toonk.io/packetio/) – `AF_PACKET`, `AF_XDP`, DPDK and Mellanox Direct Verbs compared, with real throughput numbers, and a library wrapping them. Andree Toonk 

📄 [Sloc Cloc and Code: Did I Just Get Buster Scrugged?](https://boyter.org/posts/did-i-just-get-buster-scrugged/) – A tale of profiling `scc` after a Rust rival counted code 2.5x faster, and winning back the lead. Ben Boyter 

📄 [Implementing Type Contracts via Mutually Referencing Type Parameters](https://www.dolthub.com/blog/2026-08-28-mutually-referencing-type-parameters/) Nick Tobey (DoltHub) 

📄 [I Contributed to Go: Here's How You Can Too](https://packagemain.tech/p/how-to-contribute-to-golang-step-by-step) Alex Pliutau 

📄 [The 14-Year Road to `encoding/json/v2`](https://www.ymotongpoo.com/books/go-json-v2-history/) Yoshi Yamaguchi  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qmxlcjnrm6onbcvhz7re.jpg)](https://github.com/AkihiroSuda/gomodjail)  

[gomodjail 2.0: An Experimental Jail for Go Modules](https://github.com/AkihiroSuda/gomodjail) — From the creator of [Lima](https://lima-vm.io/) comes an interesting way to confine Go dependencies: mark a module with a comment in `go.mod` and a `gomodjail analyze` check fails if it can reach the filesystem, network, raw syscalls, etc. 

Akihiro Suda   

[VHS 0.12: The 'Home Video Recorder' for Your CLI](https://github.com/charmbracelet/vhs) — A tool and scripting language for performing actions on the terminal that get recorded into an animated GIF, MP4, WebM, or PNG frames. Great for demos or tutorials. [v0.12.0](https://github.com/charmbracelet/vhs/releases/tag/v0.12.0) lets you size the output by rows and columns (instead of just pixels). 

Charm   

🤖 [yzma 1.26: Local LLM Inference from Go, Now in the Browser](https://yzma.ai/) — Run vision and language models from Go through `llama.cpp` with no cgo required (thanks to `purego` and `ffi`). Notably, [v1.26.0](https://github.com/hybridgroup/yzma/releases/tag/v1.26.0) adds WebAssembly support, so a TinyGo build can [run inference directly on a web page](https://yzma.ai/try/). 

The Hybrid Group   

[go-oracledb: An Official Pure Go Driver for _Oracle Database_](https://github.com/oracle/go-oracledb) — It's beta for now, but interesting to see an official Go client from Oracle. The established third party options are [go-ora](https://github.com/sijms/go-ora) (also pure Go) and [godror](https://github.com/godror/godror) (which uses Oracle’s client libraries via cgo). 

Oracle       

📰 Classifieds   

Your Go stack is minimal. Your data layer can be too. [TimescaleDB](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=golang-weekly-newsletter) extends Postgres for metrics and analytics. [Get $1000 credit](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=golang-weekly-newsletter). 

--- 

[Software Engineer](https://jobs.ashbyhq.com/stickermule/6db27241-e2d4-4f35-a2c4-b58d84621843?utm_source=Cooperpress) - Join our "kick ass" team! Our software team operates from 17 countries and we're looking for more exceptional engineers to join our team.      

- 🔊 [Oto 3.5](https://github.com/ebitengine/oto/releases/tag/v3.5.0) – Library to play audio on multiple platforms. Used by Ebitengine, it's now cgo-free on Linux and BSD using PulseAudio, with an ALSA fallback.
- [gofumpt 0.12](https://github.com/mvdan/gofumpt/releases/tag/v0.12.0) – Stricter formatter for Go that enforces additional rules beyond `gofmt`. Now based on Go 1.27's `gofmt` but works on Go 1.26 and up.
- [go-tui 0.20](https://github.com/grindlemire/go-tui) – Build declarative terminal UIs with a React-inspired approach.
- [workers-go 0.35](https://github.com/syumai/workers-go) – Run HTTP servers written in Go on Cloudflare Workers.
- 🌐 [TZF 2.0](https://github.com/ringsaturn/tzf) – Fast timezone finder from lat/long coordinates.
- [go-brrr 1.1](https://github.com/molecule-man/go-brrr) – Pure Go Brotli compression/decompression.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict).
Go is a [trademark of Google](https://go.dev/brand).
The [Go gopher](https://go.dev/blog/gopher), whenever used, is an original creation by Renée French. 

[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
