---
title: "The journey to faster JSON parsing"
publication: "Go Weekly"
issue: 451
published_at: "2023-03-10"
canonical_url: "https://golangweekly.com/issues/451"
---

Plus Go re-enters the TIOBE top 10, using multi-module workspaces, and what the Go team is talking about. |        

#​451 — March 10, 2023 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/451)  

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)  

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vextjc4w4eazkhptfni2.jpg)](https://vercel.com/blog/turborepo-migration-go-rust)  

[Why Turborepo is Migrating From Go to Rust](https://vercel.com/blog/turborepo-migration-go-rust) — [Turborepo](https://turbo.build/repo) is a high performance JavaScript build system built upon Go but.. perhaps not for much longer. Why? It mostly seems subjective, but you might find their arguments interesting. 

Vercel Engineering Team   

[Code Coverage for Go Integration Tests](https://go.dev/blog/integration-test-coverage) — While Go has had coverage support at the package test level for almost ten years, coverage for integration tests run outside of the `go test` mechanism has been non-existent. With Go 1.20, it’s possible to instrument a binary and generate coverage files for both the module code and dependent packages. 

Than Macintosh   [![\](https://copm.s3.amazonaws.com/bcc68a3c.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go! Experts at Your Service](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital. 

Ardan Labs Consulting sponsor   

[A Journey to High-Perf JSON Parsing in Go](https://www.cockroachlabs.com/blog/high-performance-json-parsing/) — A distributed SQL database needs to maximize data parsing, so CockroachDB’s (very successful) story about doing so is worth the read. The answer came from a somewhat unexpected place and benefits anyone looking to speed up JSON parsing. 

Yevgeniy Miretskiy (CockroachDB)   

[Getting Started with Multi-Module Workspaces](https://go.dev/doc/tutorial/workspaces) — Potentially overlooked in Go 1.18 because they _weren’t_ generics, workspaces let you tell the Go command you’re writing code in multiple modules at the same time and easily build and run code in those modules. 

Official Go Docs   

**IN BRIEF:** 

- ⭐️ InfoWorld's Paul Krill reports that [Go has rejoined the top 10 most popular programming languages](https://www.infoworld.com/article/3689949/golang-returns-to-the-top-10.html) in the latest [TIOBE index](https://www.tiobe.com/tiobe-index/) ranking (for what it's worth).
- [Go 1.20.2 and 1.19.7](https://groups.google.com/g/golang-announce/c/3-TpUx48iQY) have been released with a `crypto/elliptic` security fix.
- If you want to speak at this year's GopherCon UK, you'll [want to submit your proposal quickly](https://sessionize.com/gophercon-uk-2023) as it closes on Friday evening.
- The Go team meets regularly to discuss developments in the Go compiler, etc, and [here are some of the recent meeting notes](https://github.com/golang/go/issues/43930#issuecomment-1450692709) if you're interested in such details.
- After all the discussion about telemetry in Go, Russ Cox has now [filed the _proposal_ for adding the opt-in telemetry feature.](https://github.com/golang/go/issues/58894)    

[Things to Consider When Going with `sqlc`](https://preslav.me/2023/03/07/reasons-against-sqlc/) — [sqlc](https://sqlc.dev/) (the SQL to type-safe code generator) is a handy time and boilerplate saver, but isn’t a one-size-fits-all solution. 

Preslav Rachev   

[Terraforming Kubernetes (Free Course)](https://event.on24.com/wcc/r/4079794/D343F9105D5D08A56BE340ED833F6681?partnerref=newsletter_go) — Lead by Udemy instructor, Justin Mitchel, this course shows you how to spin up a K8s cluster using Terraform. 

Akamai Connected Cloud sponsor   

[`errors.Join` Loves `defer`?](https://wstrm.dev/posts/errors-join-heart-defer/) — In Go 1.20, you can join errors so that original errors aren’t overridden. William looks at how nicely this meshes with the use case of handling close errors in a `defer`. 

William Wennerström   

[How _Not_ to Use `context.WithValue`](https://vishnubharathi.codes/blog/context-with-value-pitfall/) 
Vishnu Bharathi   

[Higher-Order Functions in Go](https://eli.thegreenplace.net/2023/higher-order-functions-in-go/) 
Eli Bendersky  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ax8cm4aaw81km4ga5t73.jpg)](https://blog.ngrok.com/posts/ngrok-go)  

[ngrok-go: Ingress to Your Go Apps as a `net.Listener`](https://blog.ngrok.com/posts/ngrok-go) — [ngrok](https://ngrok.com/) is a long standing tool (and, increasingly, commercial service) for opening up a locally hosted service to the public Internet and now there’s an idiomatically Go way to embed ngrok-style ingress into apps. 

Alan Shreve (ngrok)   

[Valgo: An Expressive Validator Library](https://github.com/cohesivestack/valgo) — Type-safe and extensible validator library that supports localization and is built upon generics. _“Valgo differs from other validation libraries in that the rules are written in functions and not in struct tags. This allows greater flexibility and freedom when it comes to where and how data is validated.”_ 

Cohesive Stack   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperGO&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

[Gool: A Generic Goroutine Pool](https://github.com/txaty/gool) — If you’re familiar with Python’s ThreadPoolExecutor, you might like this as it provides sync and async versions of `Submit` and `Map` to run tasks. 

Tommy Tian   

[go-ssaviz: SSA Visualization with Graphviz](https://github.com/SilverRainZ/go-ssaviz) — You won’t need this unless you’re doing some _really_ low level work, but this tool lets you see Go’s internal use of [static single-assignment](https://go.dev/src/cmd/compile/internal/ssa/README) in your Go package of choice. 

Shengyu Zhang   

[Convolutional Encoder and Viterbi Decoder for Go](https://github.com/8ff/viterbi) — If you need this, you’ll know. The author explains the error-correcting nature of such encoders and decoders [in this comment.](https://news.ycombinator.com/item?id=35029727) 

8FF    

Jobs  

[Site Reliability Engineer](https://jobs.ashbyhq.com/stickermule/2482befb-4aa7-4372-98d7-042aaf774315?utm_source=Cooperpress) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers. 
Sticker Mule   

[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=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired   

🧑‍💻 Got a job listing to share? _[Here's how](https://booking.cooperpress.com/jobs)_.     

- [Glog 1.1](https://github.com/golang/glog)
 ↳ Leveled execution log library.
- [golang-set 2.2](https://github.com/deckarep/golang-set)
 ↳ Generic set type.
- [Wails 2.4](https://github.com/wailsapp/wails/releases/tag/v2.4.0)
 ↳ Go + web technologies == desktop apps.
- [rqlite 7.14](https://github.com/rqlite/rqlite)
 ↳ Distributed relational database atop SQLite.
- [Goose 3.10](https://github.com/pressly/goose)
 ↳ Database migration with SQL and/or Go functions.
- [Ginkgo 2.9](https://github.com/onsi/ginkgo)
 ↳ Modern testing framework.
- [fq 0.4](https://github.com/wader/fq)
 ↳ Like `jq` for binary formats.
- [ClickHouse Go 2.7](https://github.com/ClickHouse/clickhouse-go)
 ↳ Go driver for ClickHouse.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
