---
title: "The Go team's new project templating tool"
publication: "Go Weekly"
issue: 471
published_at: "2023-08-01"
canonical_url: "https://golangweekly.com/issues/471"
---

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](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/471)  

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/a2anufl2meoavj1ilk0k.jpg)](https://go.dev/blog/gonew)  

[Experimenting with Project Templates with `gonew`](https://go.dev/blog/gonew) — The Go team has unveiled a new, _experimental_ tool for creating new Go projects from predefined templates. Anyone can write these templates, which are then packaged and distributed as modules, using the Go module proxy and checksum database for better security and availability. 

Cameron Balahan (Go Team)   

[The Go Developer Survey Is Back: Share Your Feedback](https://go.dev/blog/survey2023-h2) — It’s that time again. The Go core team is calling upon the Gopher community for feedback on working and developing with Go. They really do pay attention to what you say, so you should take the 10(ish) minutes and give your perspective on what’s good and what needs changing. **Submissions close on August 10.** 

Todd Kulesza (Go Team)   [![\](https://copm.s3.amazonaws.com/bcc68a3c.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go! Experts at Your Service](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital. 

Ardan Labs Consulting sponsor   

[Writing a ~400 Line Git Client That Can Push Itself to GitHub](https://benhoyt.com/writings/gogit/) — A few years ago, Ben wrote a _Python_ program to be enough of a git client that it could create a repository and push itself to GitHub. Now, as a way to compare Go vs Python’s scripting chops, he’s built the same idea in Go. He compares error handling approaches, performance and verbosity, amongst other things. 

Ben Hoyt   

**IN BRIEF:** 

- Google Cloud Functions [now supports the Go 1.21 runtime](https://cloud.google.com/functions/docs/release-notes#July_31_2023) (in 'Preview' form, for now).
- 👥 The Go Developer Network is a loose collection of Go user groups, along with GoBridge, and Google itself to promote meetups in the Go world. If you're keen to go to a Go event, [all the forthcoming events are listed here.](https://www.meetup.com/pro/go/)
- A couple of weeks ago we featured the Go-powered [goread feed reader](https://github.com/TypicalAM/goread) – [v1.5](https://github.com/TypicalAM/goread/releases/tag/v1.5.0) dropped a couple of days ago, and the _Avery Makes Games_ channel did [▶️ a neat video on using goread](https://www.youtube.com/watch?v=0GCMLNHYtt8) after seeing it here.
- 💡 Jonathan Amsterdam floats the idea of [adding a `ScanRow` method to rows fetched via database/sql](https://github.com/golang/go/issues/61637) in order to scan an entire row into one value.
- 🤖 Two Go developers have released Go ports of the inference code for the LLaMA 2 large language model offered by Meta: [llama2.go](https://github.com/nikolaydubina/llama2.go) and [go-llama2](https://github.com/tmc/go-llama2)    

[On the Proposal to Enhance Go's HTTP Router](https://benhoyt.com/writings/go-servemux-enhancements/) — Last week we linked to [the discussion](https://github.com/golang/go/issues/61410) on extending the functionality of `http.ServeMux`. Here, Ben looks at how the enhancements would work in practice and compares the approach to that used by other popular routers like [chi](https://go-chi.io/#/) and [mux.](https://github.com/gorilla/mux) 

Ben Hoyt   

[Prevent Phishing Attacks with Teleport](https://goteleport.com/kubernetes-access/?utm_campaign=0801Cooperpress&utm_medium=partner&utm_source=golang) — Upgrade vulnerable keys and passwords to auto-expiring certificates for any accounts that access Kubernetes clusters. 

Teleport | goteleport.com sponsor   

[Writing Yacc Parsers in Go: Tips and Tricks](https://www.dolthub.com/blog/2023-07-28-goyacc-parser-tips-tricks/) 
Zach Musgrave   

[Go Quirks and Tricks, Part 3](https://eblog.fly.dev/quirks3.html) 
Efron Licht  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kvxqn4jbvbblntrgnj8f.jpg)](https://blog.jetbrains.com/go/2023/07/27/goland-2023-2/)  

[GoLand 2023.2 IDE Released](https://blog.jetbrains.com/go/2023/07/27/goland-2023-2/) — The latest release of the (commercial) Go IDE improves integration with Go modules, adds refactorings for migrating function parameters to method receivers and vice versa, offers a Kafka monitoring plugin, and support for `errors.Is` and `errors.As`. Oh, and a “new AI Assistant plugin”, because it _is_ 2023 after all. 

JetBrains   

[imgdiet: A Simple Image Processing and Compression Option](https://sr.ht/~jamesponddotco/imgdiet/) — A Go module that uses the `libvips` library to optimize and compress JPEG and PNG images. 

James Pond   

[Monitor, Test and Debug Your APIs with APIToolkit](https://apitoolkit.io?utm_campaign=cooperpress) — A toolbox for building and maintaining APIs better than ever. Test and validate all API requests, and spot bugs faster. 

APIToolkit sponsor   

[Lego: A Let's Encrypt Client and ACMEv2 Library](https://github.com/go-acme/lego) — Nothing to do with small plastic bricks, this Lego lets you obtain certificates, handle ACME challenges (HTTP, DNS and TLS), interact with DNS providers, and more. 

Sebastian Erhart   

[QCOW2: Library to Read and Write QCOW2 Disk Images](https://github.com/gpu-ninja/qcow2) — [QCOW2](https://en.wikipedia.org/wiki/Qcow) is a storage format used by the QEMU emulator. 

GPU Ninja   

[RoadRunner: A High Performance PHP Application Server](https://roadrunner.dev/) — A Go-based system that keeps PHP under control with a load balancer and process manager built in. It includes an HTTP server too and can slot into a typical Nginx+FPM setup. [GitHub repo.](https://github.com/spiral/roadrunner) 

SpiralScout    

Jobs  

[Find a Job Through Hired](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) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

- [ntp 1.3](https://github.com/beevik/ntp) – Network Time Protocol client library.
- [go-elasticsearch 8.9](https://github.com/elastic/go-elasticsearch) – Official Go client for Elasticsearch.
- [sqlc 1.20](https://github.com/sqlc-dev/sqlc/releases/tag/v1.20.0) – Generate type-safe code from SQL.   

[Cardrank: Types and Functions for Working with Playing Cards](https://github.com/cardrank/cardrank) 
cardrank   

[TStat: A Friendly Way to Query Go Test Output and Coverage Profiles](https://github.com/nickfiggins/tstat) 
Nick Figgins   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sg3wpnyixrtxtd7bddzj.jpg)](https://github.com/itchyny/bed)  

[bed: A Binary/Hex Editor Written in Go](https://github.com/itchyny/bed) 
Itchyny         

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
