#252 — March 7, 2019

Read on the Web

Golang Weekly

GraphQL with Go: A Deep Dive from Basics to Advanced — The title says it all. Goes into some nice detail & tackles a couple of edge cases.

Ridham Tarpara

Proposal: Secure the Public Go Module Ecosystem with the Go 'Notary'“We propose to secure the public Go module ecosystem by introducing a new server, the Go notary, which serves what is in effect a go.sum file listing all publicly-available Go modules.” This idea was first surfaced on the official Go blog in Go Modules in 2019.

Russ Cox and Filippo Valsorda

Fast And Reliable CI/CD. Pay Only For What You Use — Built for developer productivity, Semaphore 2.0 allows you to model any CI/CD workflow with fully customizable, powerful pipelines. With the new pricing model you pay only for what you use. Sign up free with GitHub and give it a run-through.

Semaphore 2.0 sponsor

Go Micro 1.0: A No-Dependency Microservice Framework — Provides the core features you need for distributed systems development. Mature and in production use at various companies. This week’s 1.0 release “is to signify the stability of the framework”.

Micro Technologies

Logrus: A Structured Logger With Lots of Features — Supports JSON formatting, hooks (for sending certain log entries to external services, say), plus it’s API compatible with the standard library’s logger too, so try dropping it in.

Simon Eskildsen

What's New in the Go Cloud Development Kit — The Go Cloud Development Kit, formerly known as Go Cloud, provides commonly used, vendor-neutral generic APIs that you can deploy across cloud providers.

The Go Blog

💻 Jobs

Deliver Data Science with Golang (Fully Remote) — We’re building a product in Go and are looking for our next full-stack dev. Whether a Go expert, or just getting started, we want to hear from you.


Find A Job Through Vettery — Vettery specializes in dev roles and is completely free for job seekers.


📘 Articles & Tutorials

Build Go Projects with GitHub Actions — The example creates an action that cross-compiles binaries and uploads all them to Amazon S3.

Dan Sosedoff

When and Why to Use A Least Frequently Used (LFU) Cache — The implementation uses an algorithm that is not as complicated as you might guess using straightforward data structures.

Ilija Eftimov

📈Data-Driven Guide to Engineering Leadership

GitPrime sponsor

A No-Nonsense Guide to Environment Variables in Go — A step-by-step guide on how to configure a Go application with environment variables.

Enda Phelan

▶  Decoding Binary Network Protocols in Go — The audio is slightly clipping, but listenable. (31 minutes.)

Axel Wagner

🔧 Tools & Code

Beep 1.0: Bring Sound to any Go App — There’s now some basic documentation and some code examples. Uses Oto behind the scenes.

Michal Štrba

Immutable: Immutable Collection Types for Go — Includes List, Map, and SortedMap implementations so far.

Ben Johnson

Ebiten: A Simple 2D Game Library for Go — The latest release (1.9.0) no longer requires Cgo on Windows, has many performance improvements, and uses Metal on macOS instead of OpenGL.

Hajime Hoshi

IGDB: Go Client for the Internet Game Database API — Version 1.0 has just been released.

Henry Sarabia

NutsDB: A Simple, Embeddable, Persistent Key/Value Store — Written in pure Go, it supports fully serializable transactions and data structures like lists, sets, and sorted sets. Has a Redis feel to it.

Xu Jiajun

Konfig: Composable, Observable and Performant Config Management“Compose configurations from multiple sources with reload hooks making it simple to build apps that lives in a highly dynamic environment.”


Share Your Whole Stack with Your Team with One Workflow 👩‍💻

Manifold sponsor

hrtime: High Resolution Timing and Benchmarking Functions — Note that it considers itself ‘beta quality’ at this stage.

Egon Elbre

human_duration: Human-Friendly Duration Strings — This library has only been out for 5 days 2 hours and 14 minutes.

David Banham