---
title: "Get your generics here with 1.18 beta 1."
publication: "Go Weekly"
issue: 392
published_at: "2021-12-17"
canonical_url: "https://golangweekly.com/issues/392"
---

Plus a map/reduce framework for Go, and a Go powered game to play. |        

#​392 — December 17, 2021 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/btc9x1opf5j4cgfugfj5.jpg)](https://go.dev/blog/go1.18beta1)  

[Go 1.18 Beta 1 is Available (with Generics)](https://go.dev/blog/go1.18beta1) — It’s here! It’s here! Just in time for the holidays! The preview release of Go 1.18 with generics (and a few other very nice new features) is ready for you to play with (and test). The final release isn’t due until 2022 so there’s plenty of time. See [the draft release notes](https://tip.golang.org/doc/go1.18) for more. 

Russ Cox   

[gqlclient: GraphQL Client and Code Generator for Go](https://git.sr.ht/~emersion/gqlclient) — It can parse a GraphQL schema and generate Go types as needed. It can also parse query documents and generate Go functions. _(As an aside, it’s so nice to link to something hosted on [sourcehut](https://sr.ht/) instead of GitHub for a change :-))_ 

Simon Ser   [![\](https://copm.s3.amazonaws.com/20ef9813.jpg)](https://bridgecrew.io/resource/cloud-security-and-gitops-checklist?utm_medium=sponsorednewsletter&utm_source=gonews&utm_campaign=gon211217&utm_content=gitopscl) 

[Six Power Rules for Secure GitOps](https://bridgecrew.io/resource/cloud-security-and-gitops-checklist?utm_medium=sponsorednewsletter&utm_source=gonews&utm_campaign=gon211217&utm_content=gitopscl) — Take advantage of GitOps agility without losing sight of cloud security best practices. 👀 Follow these steps to provision faster and more reliably while automating proactive security-as-code. Download the Secure GitOps Checklist for free ✅ 

Bridgecrew sponsor   

**IN BRIEF:** 

- A site is offering links to [good first issues](https://goodfirstissue.dev/language/go/) to work on in Go projects if you want to get involved in open source.
- 📗 [Powerful Command-Line Applications in Go](https://www.pragprog.com/titles/rggo/powerful-command-line-applications-in-go/) by Ricardo Gerardi has been published by _Pragmatic Bookshelf._
- Mat Ryer of the Go Time podcast [▶️ asked the Go team lots of questions](https://changelog.com/gotime/210) about lots of things from garbage collection and generics to Go 2 and how community surveys influence their work.
- The Gorilla Toolkit (perhaps best known for the [mux](https://github.com/gorilla/mux) router) is [looking for new maintainers](https://github.com/gorilla/mux/issues/659).   

[Replacing `interface {}` with `any`](https://github.com/golang/go/commit/2580d0e08d5e9f979b943758d3c49877fb2324cb) — Don’t worry about this syntactic sugar until you’re working on Go 1.18, but it’s a type alias to be aware of and might save a little typing time in future ;-) 

Russ Cox   

[When to Use Generics in Go?](https://teivah.medium.com/when-to-use-generics-in-go-36d49c1aeda) — And here’s a well-timed and well-written piece on when you can and can’t use generics along with some discussion around appropriate use cases. 

Teiva Harsanyi   

[Awesome Go Education: Links to Go Tutorials](https://mehdihadeli.github.io/awesome-go-education/) — If you’re a fan of those ‘awesome’ lists of curated links, this new one covers tutorials in about 30 broad categories such as error handling, microservices, and debugging. Early days, but if you have tutorials of your own you’re encouraged [to contribute here](https://github.com/mehdihadeli/awesome-go-education/blob/main/contributing.md). 

Mehdi Hadeli     

Jobs  

[Senior Golang Engineer (Cloud, Microservices, REST APIs) (Romania Remote)](https://crowdstrike.wd5.myworkdayjobs.com/en-US/crowdstrikecareers/job/Romania---Remote/Sr-Software-Engineer--Discover---Romania-or-Germany--Remote-_R5191?_ga=2.254546824.1415722864.1632139815-699343068.1543847975) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks. 
Crowdstrike   

[Senior Software Engineer (Go) - 100% Remote, UK/EU Only](https://www.form3.tech/careers/job-application?gh_jid=4003519002) — Solve complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster. 
Form3   

[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) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired     

🛠 Code & Tools  

[MapReduce: A Map-Reduce Framework for Go](https://github.com/BWbwchen/MapReduce) — Inspired by [one of the labs](http://nil.csail.mit.edu/6.824/2021/labs/lab-mr.html) in MIT CSAIL’s Distributed Systems class. 

Bo-Wei Chen   

[ImmuDB 1.2: A Fast Immutable Database, Built on a Zero Trust Model](https://github.com/codenotary/immudb/) — A ‘tamper proof’ database system built in Go that [has just added](https://github.com/codenotary/immudb/releases/tag/v1.2.1) ACID transaction support, plus the ability to delete or expire records as necessary to comply with GDPR rules. 

CodeNotary   

[gofumpt: A Stricter `gofmt`](https://github.com/mvdan/gofumpt) — You like rules? `gofmt` not strict enough? `gofumpt` has even [stricter rules](https://github.com/mvdan/gofumpt#added-rules) to keep your codebase clean and behaving. 

Daniel Martí   

[Observability Won't Replace Monitoring (Because It Shouldn't)](https://go.lightstep.com/register-observability-replace-monitoring-co?utm_campaign=golang&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Miniredis: A Pure Go Redis Server for Go Unit Tests](https://github.com/alicebob/miniredis) — Think of it as the Redis version of `net/http/httptest`. 

Harmen   

[go-mysql 1.4.0: A Pure Go Library for the MySQL Network Protocol](https://github.com/go-mysql-org/go-mysql) — Not your typical MySQL client (there _is_ a client in here, but that’s not the focus) but for when you need to interact with other clients and servers at the low level. 

siddontang   

[Oso: A Batteries-Included Library for Building Authorization in Go](https://www.osohq.com/authorization-library/go-lang) — Oso embeds in your application and uses policies that you write using Polar (a DSL for authorization policy) and includes some patterns for common access control patterns. 

Oso   

[Bleve 2.3.0: A Modern Text Indexing Library for Go](https://github.com/blevesearch/bleve) 
bleve   

[netlink 1.5: Low-Level Access to Linux Netlink Sockets](https://github.com/mdlayher/netlink) 
Matt Layher   

[XLSX 3.2.4: A Library for Reading and Writing XLSX (Excel) Files](https://github.com/tealeg/xlsx) 
Geoffrey J. Teale  

👾 And one for fun.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/ppgeurwj7cefrmts0ca0.jpg)](https://rocketnine.itch.io/monovania)  

[Monovania: A 2D Puzzle Platformer Built with Ebiten](https://rocketnine.itch.io/monovania) — Built with Go’s popular Ebiten 2D game library for the [Metroidvania Month 14](https://itch.io/jam/metroidvania-month-14) game jam, you can play the game online at the main link above or [get the source here](https://code.rocketnine.space/tslocum/monovania). _(Note: I found you have to click on the browser again to give the game keyboard access, but then it's fine.)_ 

rocketnine         

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
