---
title: "Generics get one step closer to Go"
publication: "Go Weekly"
issue: 345
published_at: "2021-01-15"
canonical_url: "https://golangweekly.com/issues/345"
---

Plus GTA, faking data, and bringing Rails-esque text fixtures to Go. |        

#345 — January 15, 2021 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1610719677/ehzetvxfiprjzi4nkofa.png)](https://blog.golang.org/generics-proposal)  

[A Proposal for Adding Generics to Go](https://blog.golang.org/generics-proposal) — An official announcement of the promotion of the [Generics Design Draft](https://go.googlesource.com/proposal/+/master/design/go2draft-type-parameters.md) to an actual [language change proposal](https://golang.org/issue/43651), which is Go’s process for changing the language. If it is accepted, Go 1.18 is the current target version. 

Ian Lance Taylor   

[GTA: A Way to Detect Packages Deviating from Upstream](https://www.digitalocean.com/blog/gta-detecting-affected-dependent-go-packages/) — Sorry, it’s not GTA 6, but a tool from DigitalOcean to do transitive analysis to find packages whose dependencies have changed. This post digs into why they needed to build it and how it’s helped them with their work. 

Billie Cleek (DigitalOcean)   [![\](https://copm.s3.amazonaws.com/f1672cfa.png)](https://get.mux.com/3oBOZVP) 

[Video for Your Go App That Streams Beautifully, Everywhere](https://get.mux.com/3oBOZVP) — Whether you have thousands of streams or millions of viewers, automatically deliver the best viewer experience with Mux's live streaming API. Sign up and get $20 credit today. 

Mux sponsor   

[GoFakeIt 6.0.0: A Random Fake Data Generator](https://github.com/brianvoe/gofakeit) — Go’s answer to Ruby’s exhaustive [Faker](https://github.com/faker-ruby/faker) library. GoFakeIt has [over 160 functions](https://github.com/brianvoe/gofakeit#functions) for generating things like names, emails, locations, colors, user agents, breakfast items (oh yes!), and more. 

Brian Voelker   

[Bleve 2.0: Full-Text Search and Indexing for Go](http://www.blevesearch.com/) — Index any go data structure (including JSON) and query in multiple ways. You can [test it out live](http://blevesearch.com/search/?q=bleve) on Bleve’s own site. [v2.0.0](https://blevesearch.com/news/Bleve-v2.0.0-Released/) isn’t a huge release but has some breaking changes. 

Bleve   

[GoLand: Running `go fmt` on Save, Yes or No?](https://blog.jetbrains.com/go/2021/01/12/running-go-fmt-on-save/) — JetBrains is considering adding a feature to their GoLand IDE that runs `go fmt` on every save. There are many considerations (enumerated here) and they’d love your feedback before they start work on the feature. 

JetBrains  

📘 Tutorials and Stories  

[Making SQLite Faster in Go](https://turriate.com/articles/making-sqlite-faster-in-go) — I’m a _huge_ fan of SQLite - it fits into so many use cases and keeps things simple yet fast. However, you can make it even faster with a connection pool and prepared statements. 

Sandro Turriate   

[Why Are My Go Executable Files So Large?](https://www.cockroachlabs.com/blog/go-file-size/?utm_campaign=cooperpress-2021-Q1&utm_source=goweekly&utm_medium=sponsor&utm_content=goweekly-sponsored) — Follow along with Raphael "kena" Poss as he investigates what was making his Go executable programs larger than expected. 

Cockroach Labs sponsor   

[Discovering and Exploring `mmap` using Go](https://brunocalza.me/discovering-and-exploring-mmap-using-go/) — `mmap` is a system call for mapping files into memory which can provide a neat abstraction for working with both. Here’s how to use it in Go along with when you shouldn’t. 

Bruno Calza   

[Building DigitalOcean's API Gateway](https://mauricio.github.io/2021/01/14/building-digitaloceans-api-gateway.html) — The full story of how DigitalOcean built its own API gateway in Go. 

Maurício Linhares   

[De-obfuscating Go Functions](https://medium.com/walmartglobaltech/de-ofuscating-golang-functions-93f610f4fb76) — As Go has been used for nefarious purposes, the need to de-obfuscate Go in order to catch bad folks is growing and Jason has an idea for how to begin this process. 

Jason Reaves   

[Dissecting OpenTelemetry Go Tracing](https://dmathieu.com/articles/development/dissecting-opentelemetry-tracing/) — A walk through the OpenTelemetry source code where you’ll learn how to configure a provider, start a trace, and export data. 

Damien Mathieu   

[Going Places: How I Used Go for Every Part of an IoT System](https://dev.to/stanleynguyen/going-places-how-i-used-golang-for-literally-every-part-of-an-iot-system-19fm) — Fulfilling Java’s multi-decade-old promise with Go. 

Stanley Nguyen   

[A Go Slice Tricks Cheat Sheet](https://ueokande.github.io/go-slice-tricks/) — A more visual alternative to the [‘slice tricks’](https://github.com/golang/go/wiki/SliceTricks) shared on the Go wiki. 

Shin'ya Ueoka  

🛠 Code & Tools  

[Resty 2.4: Simple HTTP and REST Client Library for Go](https://github.com/go-resty/resty) — Simple in terms of getting around its API, but in terms of [features](https://github.com/go-resty/resty#features) it’s pretty packed. [2.4.0](https://github.com/go-resty/resty/releases/tag/v2.4.0) adds a new hook that’s called when a request returns an error. 

Jeevanandam M.   

[TestFixtures: Ruby on Rails-Like Test Fixtures for Go](https://github.com/go-testfixtures/testfixtures) — A mature library that takes the opinion that writing tests against a real database is the best approach and provides a way to define predictable fixtures to make this easier. 

Andrey Nering   

[Accelerate Release Cycles and Deploy Every 6 Hours, Not Every 6 Weeks](https://learn.launchdarkly.com/effective-feature-management/?utm_source=cooperpress&utm_medium=display&utm_campaign=q4-cooperpress&utm_content=ebook_oreilly_efm) 

LaunchDarkly sponsor   

[gocache: A Complete Library With Multiple Ways of Managing Your Caches](https://github.com/eko/gocache) — Not only does gocache support multiple backends, it also allows you to chain them, preload them, and includes Prometheus metrics. 

Vincent Composieux   

[Counterfeiter: A Tool for Generating Self-Contained, Type-Safe Test Doubles](https://github.com/maxbrunsfeld/counterfeiter) 

Max Brunsfeld   

[Act: Run Your GitHub Actions Locally](https://github.com/nektos/act)   

[go-oci8: A Oracle Database Driver for Go using `database/sql`](https://github.com/mattn/go-oci8)  

💻 Jobs  

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

Form3   

[Find Your Next 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         

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
