#337 — November 6, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

Insights on Rust vs Go — John is a huge Go fan and has done a lot of work in the Go space, but he thinks both Rust and Go are awesome and takes a careful look at where Go and Rust each independently make the most sense. We wouldn't usually strongly feature a 'versus' type post, but several people from the Go and Rust spaces reviewed this piece for quality and fairness.

John Arundel

Manual Memory Management in Go Using jemalloc — The creators of the Dgraph GraphQL-based graph database need to squeeze every bit of memory and CPU efficiency out of Go so they took the unusual step of manually managing memory in most critical paths of their app. Worth understanding even if you don’t need to do it yourself.

Manish Rai Jain

Video for Your Go App — Integrate seamlessly into your product's UI. Mux Video is an API-first platform that makes it easy to build beautiful video that streams everywhere.

Mux sponsor

Two Days Remain to Take the Go Survey — Each year the Go team run a community survey into all of our experiences and ideas about Go. It helps them improve Go and also provides useful data for everyone to analyze how the ecosystem is developing. It closes this Sunday so if you want to take part, now is the time.

Core Go Team

Go 1.15.4 and 1.14.11 Released — Just minor fixes as is usual for patch level releases.

Preview the Future Design of pkg.go.dev at beta.pkg.go.dev
Go Package Hub

💻 Jobs

Senior Site Reliability Engineer — We are looking for a strong Senior Site Reliability Engineer to help manage Event Store’s multi-cloud provisioning platform.

Event Store

Senior Golang Engineer — Seeking senior engineer to build developer-focused fraud prevention APIs. Fully remote company. Must love open source.

FingerprintJS

Find a Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

📘 Tutorials

Combining DDD, CQRS, and Clean Architecture by Refactoring a Go Project — Learning individual techniques around structuring code isn’t too difficult, but bringing together a raft of ideas in one codebase can get tricky. Here Robert pragmatically shows us how it’s done with DDD (domain driven design), CQRS (Command Query Responsibility Segregation) and Clean Architecture.

Robert Laszczak

Database Migrations in Go — Some platforms (e.g. Rails) have built-in database migrations to help manage your schema. Go has some tools as well, but maybe you should just write this capability yourself?

Jon Calhoun

Service to Service Authorization in Go Using X.509 Certificates — Adding identity and access management via certificates to a TLS-protected connection is one approach to client authentication.

Anthony Regeda

Extracting Meaning from PDF Files in Pure Go — PDF files are everywhere. UniPDF allows you to extract text and tables from PDFs, enabling powerful automations.

UniDoc sponsor

Implement A RESTful HTTP API in Go using Gin — The eleventh entry in a 12-part “backend master class” in Go.

Tech School

What's So Great About Go? — An exploration of the traits that have led to the rising popularity of Go.

John Biggs

Getting Started with the MongoDB Go Driver
Akash Kathiriya

Getting Started with go-fuzz
Adam Korczynski

🛠 Code & Tools

Dagger: A Fast, Concurrency Safe, Mutable, In-Memory Directed Graph Library — It also has no dependencies.

Coleman Word

RxGo: Reactive Extensions for the Go Language — If you’re familiar with RxJS in the JavaScript world, this is the same idea for Go.

ReactiveX

Getting Started with OpenTelemetry in Go

OpenTelemetry sponsor

Limiter: Very Simple Rate Limiting Middleware — Use as middleware with http, Gin, Beego, and Chi. Uses Redis (optionally).

Ulule

imgcat: A Tool to Output Images as RGB ANSI Graphics at the Terminal — It looks a bit funky on my macOS Terminal but it does work, at least.

Stephen Solka

Micro 3.0.0: A Platform for Cloud Native Microservice Development — A popular way to build scalable microservices in Go.

Micro

go-sqlbuilder: A Flexible SQL String Builder Library — Focused mostly on MySQL and Postgres. Includes basic ORM type support via structs.

Huan Du