#474 — September 5, 2023 |
|
Go Weekly |
Perfectly Reproducible, Verified Go Toolchains — Go 1.21 contains some significant features, but truly reproducible builds is a big deal and Russ goes (deep) into how it works here, complete with a walkthrough. The Go team has also built a tool, gorebuild, to prove the feature works as intended. Russ Cox |
Cgo Performance in Go 1.21 — Cgo makes it possible for Go packages to call C code and is commonly used to provide Go apps with access to the larger world of C-based libraries. Shane doesn’t want to argue about Cgo's pros and cons here but does make the case that its performance is good and the overhead is insignificant in most cases. Shane Hansen |
Certificate-Based MFA, RBAC, and SSO with Teleport — Implement industry best practices for Kubernetes access with minimal configuration. Easily enforce MFA, RBAC, and SSO using identity-based short-lived X.509 certificates for engineers and service accounts by starting your trial today. Teleport | goteleport․com sponsor |
A Closer Look at Go's Profile-Guided Optimization (PGO) — PGO offers compile-time optimization of binaries based on profile data of actual usage, which can genuinely change the performance characteristics. This is something you need to get into your build pipelines. Yahya SayadArbabi |
QUICK BITS:
|
Using Go to Write User Defined Functions (UDFs) — Less a tutorial and more an interesting example of how Seafowl, a Rust-powered analytics database, supports user defined functions provided as WebAssembly and how Go can be used to create such functions. Go's ever improving WebAssembly support will open up more use cases like this over time. Patrick Skinner |
Automated Cloud Provisioning from Your Go Code — Declare infrastructure in your Go program and get self-provisioning local, preview, and cloud environments (AWS/GCP). Encore sponsor |
Using Goquery for Data Parsing — If you’d like a jQuery-esque way of working with the DOM.. ZenRows |
Building Scalable Apps Using Redis as a Message Broker
|
🛠 Code & Tools |
Autostrada: A Codebase Generator for Go Projects — A site that lets you pick from a variety of options (webapp vs JSON API, SQLite vs Postgres – add auth, secure cookies, sessions, etc.) and then download a custom codebase built from those options to continue building an app with. Alex Edwards |
CLI Mate: Auto-Generate Go CLIs — Supports nested subcommands, global/local flags, help generation from godocs, typo suggestions, shell completion and more. Inspired by python-fire and powered by Cobra. Vamsi Avula |
Monitor, Test and Document your APIs with APIToolkit — A toolbox for building and maintaining APIs better than ever. Test and validate all API requests, and spot bugs faster. APIToolkit sponsor |
Logging in Go: A Comparison of 8 Libraries — With the introduction of a new core standard logging package ( Ayooluwa Isaiah |
LotusDB 2.0: A Key/Value Store Built in Go — A Go-native key/value store that boasts high read and write performance and combines the advantages of LSM and B+ trees. Docs are a little thin on the ground but there’s a complete example in the README and an introductory post on Medium. LotusDB Labs |
Expr 1.15.0: Expression Evaluation Within Go — Got expressions? Expr is an engine for evaluating them, whether it’s for arithmetic, business rules, or data filtering. GitHub repo. Anton Medvedev |
|
|
GotHub: An Alternative GitHub Frontend / Proxy — It’s not a typo, but a Go-powered alternative front-end for GitHub. It’s also looking for new maintainers. Arya K |