#​392 — December 17, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Go 1.18 Beta 1 is Available (with Generics) — 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 for more.

Russ Cox

gqlclient: GraphQL Client and Code Generator for Go — 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 instead of GitHub for a change :-))

Simon Ser

Six Power Rules for Secure GitOps — 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:

Replacing interface {} with any — 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? — 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 — 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.

Mehdi Hadeli

Jobs

Senior Golang Engineer (Cloud, Microservices, REST APIs) (Romania Remote) — 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 — Solve complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster.
Form3

Find a Job Through Hired — 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 — Inspired by one of the labs in MIT CSAIL’s Distributed Systems class.

Bo-Wei Chen

ImmuDB 1.2: A Fast Immutable Database, Built on a Zero Trust Model — A ‘tamper proof’ database system built in Go that has just added ACID transaction support, plus the ability to delete or expire records as necessary to comply with GDPR rules.

CodeNotary

gofumpt: A Stricter gofmt — You like rules? gofmt not strict enough? gofumpt has even stricter rules to keep your codebase clean and behaving.

Daniel Martí

Observability Won't Replace Monitoring (Because It Shouldn't)

Lightstep sponsor

Miniredis: A Pure Go Redis Server for Go Unit Tests — 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 — 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 — 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
bleve

netlink 1.5: Low-Level Access to Linux Netlink Sockets
Matt Layher

XLSX 3.2.4: A Library for Reading and Writing XLSX (Excel) Files
Geoffrey J. Teale

👾 And one for fun..

Monovania: A 2D Puzzle Platformer Built with Ebiten — Built with Go’s popular Ebiten 2D game library for the Metroidvania Month 14 game jam, you can play the game online at the main link above or get the source here. (Note: I found you have to click on the browser again to give the game keyboard access, but then it's fine.)

rocketnine