multierr
https://github.com/uber-go/multierr
multierr allows combining one or more Go errors together.
https://github.com/uber-go/multierr
air
https://github.com/cosmtrek/air
When I started developing websites in Go and using gin framework, it was a pity that gin lacked a live-reloading function. So I searched around and tried fresh, it seems not much flexible, so I intended to rewrite it better. Finally, Air's born. In addition, great thanks to pilu, no fresh, no air :)
Air is yet another live-reloading command line utility for developing Go applications. Run air in your project root directory, leave it alone, and focus on your code.
Note: This tool has nothing to do with hot-deploy for production.
https://github.com/cosmtrek/air
How I keep myself Alive using Golang
https://www.bytesizego.com/blog/keeping-alive-with-go
In this blog I explore how I use an incident management mindset to manage a complex medical condition. I hope you enjoy it!
https://www.bytesizego.com/blog/keeping-alive-with-go
The Impact of Pre-allocating Slice Memory on Performance in Golang
https://oilbeater.com/en/2024/03/04/golang-slice-performance
During my code reviews, I often focus on whether the slice initialization in the code has allocated the expected memory space, that is, I always request to change from var init []int64 to init := make([]int64, 0, length) format whenever possible. However, I had no quantitative concept of how much this improvement affects performance, and it was more of a dogmatic requirement. This blog will introduce the theoretical basis of how pre-allocating memory improves performance, quantitative measurements, and tools for automated detection.
https://oilbeater.com/en/2024/03/04/golang-slice-performance
When Kubernetes and Go don't work well together
https://lalatron.hashnode.dev/when-kubernetes-and-go-dont-work-well-together
Go is not aware of the limits set for its container, causing some issues not easy to track. This is a story about how I stumbled into one of them.
https://lalatron.hashnode.dev/when-kubernetes-and-go-dont-work-well-together
fgprof
https://github.com/felixge/fgprof
fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.
https://github.com/felixge/fgprof
huma
https://github.com/danielgtaylor/huma
A modern, simple, fast & flexible micro framework for building HTTP REST/RPC APIs in Go backed by OpenAPI 3 and JSON Schema.
https://github.com/danielgtaylor/huma
EchoVault
https://github.com/EchoVault/EchoVault
EchoVault is a highly configurable, distributed, in-memory data store and cache implemented in Go. It can be imported as a Go library or run as an independent service.
https://github.com/EchoVault/EchoVault
High-Speed Packet Transmission in Go: From net.Dial to AF_XDP
https://toonk.io/sending-network-packets-in-go
Pushing limits in Go: from net.Dial to syscalls, AF_PACKET, and lightning-fast AF_XDP. Benchmarking packet sending performance.
https://toonk.io/sending-network-packets-in-go
The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions
https://benhoyt.com/writings/go-1brc
https://benhoyt.com/writings/go-1brc
The missing type in the Go standard library: Date!
https://engineering.hardfin.com/2024/02/date-the-missing-type
The Go standard library uses a single overloaded type as a stand-in for both full datetimes1 and dates. This mostly “just works”, but slowly starts to degrade correctness in codebases where both datetime and date values need to interact.
https://engineering.hardfin.com/2024/02/date-the-missing-type
Writing a Postgres Logical Replication System in Golang
https://www.dolthub.com/blog/2024-03-08-postgres-logical-replication
We're building Dolt, the world's first version-controlled SQL database. Dolt is MySQL compatible, but many of our prospective customers wanted a Postgres-compatible version instead, so we have been hard at work building DoltgreSQL.
The first prospective DoltgreSQL customer to reach out to us wants to continue using Postgres for their primary database server, but get diffs of all their changes in Doltgres. So we talked it over with them and decided that Postgres's logical replication would be the best fit for this functionality, and started building it. A few weeks later, DoltgreSQL's replicate-from-Postgres feature is almost ready for production use, and you'll be able to try it out in the next release of the product.
This blog discusses what we learned building this feature, and walks you step-by-step through how to build a replication system consuming Postgres's logical replication protocol in Go. We'll be using the jackc/pglogrepl library to consume and send messages with the Postgres primary, but most of the lessons generalize to other clients as well.
https://www.dolthub.com/blog/2024-03-08-postgres-logical-replication
goqite
https://github.com/maragudk/goqite
goqite (pronounced Go-queue-ite) is a persistent message queue Go library built on SQLite and inspired by AWS SQS (but much simpler).
https://github.com/maragudk/goqite
formstream
https://github.com/mazrean/formstream
FormStream is a Golang streaming parser for multipart data, primarily used in web form submissions and file uploads.
https://github.com/mazrean/formstream
mechanoid
https://github.com/hybridgroup/mechanoid
Mechanoid is an open source framework for building and running WebAssembly applications on small embedded systems and tiny IoT devices. It is intended to make it easier to create applications that are secure and extendable, and take advantage of all of the latest developments in both WebAssembly and embedded development.
Mechanoid includes a command line interface tool that helps you create, test, and run applications on either simulators or actual hardware.
You can write WASM modules for Mechanoid using any language that can compile to WebAssembly, including TinyGo, Rust, and Zig.
Mechanoid itself is written using Go and TinyGo.
https://github.com/hybridgroup/mechanoid