konf
https://github.com/nil-go/konf
konf offers an(other) opinion on how Go programs can read configuration without becoming coupled to a particular configuration source.
https://github.com/nil-go/konf
bloom
https://github.com/bits-and-blooms/bloom
A Bloom filter is a concise/compressed representation of a set, where the main requirement is to make membership queries; i.e., whether an item is a member of a set. A Bloom filter will always correctly report the presence of an element in the set when the element is indeed present.
https://github.com/bits-and-blooms/bloom
Eradicating N+1s: The Two-phase Data Load and Render Pattern in Go
https://brandur.org/two-phase-render
https://brandur.org/two-phase-render
Alternatives to Makefiles written in Go
https://eltonminetto.dev/en/post/2024-05-26-alternatives-make
https://eltonminetto.dev/en/post/2024-05-26-alternatives-make
Reading Google Sheets from a Go program
https://eli.thegreenplace.net/2024/reading-google-sheets-from-a-go-program
https://eli.thegreenplace.net/2024/reading-google-sheets-from-a-go-program
bob
https://github.com/stephenafamo/bob
SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite
https://github.com/stephenafamo/bob
rill
https://github.com/destel/rill
Rill (noun: a small stream) is a Go toolkit that offers a collection of easy-to-use functions for concurrency, streaming, batching and pipeline construction. It abstracts away the complexities of concurrency, removes boilerplate, provides a structured way to handle errors and allows developers to focus on core logic. Whether you need to perform a basic concurrent ForEach or construct a complex multi-stage processing pipeline, Rill has got you covered.
https://github.com/destel/rill
entropy
https://github.com/EwenQuim/entropy
Entropy is a CLI tool that will scan your codebase for high entropy lines, which are often secrets.
https://github.com/EwenQuim/entropy
hn-text
https://github.com/piqoni/hn-text
A fast, easy-to-use and distraction-free Hacker News terminal client.
https://github.com/piqoni/hn-text
pgxmock
https://github.com/pashagolub/pgxmock
pgxmock is a mock library implementing pgx - PostgreSQL Driver and Toolkit. It's based on the well-known sqlmock library for sql/driver.
pgxmock has one and only purpose - to simulate pgx behavior in tests, without needing a real database connection. It helps to maintain correct TDD workflow.
https://github.com/pashagolub/pgxmock
hookdeck-cli
https://github.com/hookdeck/hookdeck-cli
Free - no account required - alternative to ngrok for localhost asynchronous web development (e.g. webhooks)
https://github.com/hookdeck/hookdeck-cli
Making Regex From Scratch in Go
https://lewismetcalf.com/series/making-regex-from-scratch-in-go
This series is a step by step guide to creating an (almost) fully fledged Regex engine using Go. It explores the basics of Finite State Automata, incrementally creates a parser and compiler for turning strings into state machines, walks through the setup of a visualizer for the FSM node graph. All of the development is structured as a TDD project, and uses modern Go features such as fuzzing, generics, and profiling.
https://lewismetcalf.com/series/making-regex-from-scratch-in-go
A pragmatic guide to Go module updates
https://carlosbecker.com/posts/pragmatic-gomod-bump
Some quick bits about how to do go.mod version bumps.
https://carlosbecker.com/posts/pragmatic-gomod-bump
Shameless green: TDD in Go
https://bitfieldconsulting.com/posts/tdd-shameless-green
This is the second in a three-part series, extracted from my book The Power of Go: Tests, about test-driven development (TDD) in Go—in other words, building software in Go, guided by tests.
https://bitfieldconsulting.com/posts/tdd-shameless-green
Rust's concurrency model vs Go's concurrency model: stackless vs stackfull coroutines
https://kerkour.com/rust-vs-go-concurrency-models-stackfull-vs-stackless-coroutines
While Rust and Go are both modern programming languages that have learned from the mistakes of the previous generation, they manage concurrency in a completely different way, which, as we will see, has a huge impact on performance and developer experience.
https://kerkour.com/rust-vs-go-concurrency-models-stackfull-vs-stackless-coroutines
On testing Go code using the standard library
https://henvic.dev/posts/testing-go
Most modern programming language ecosystems provide assert functions in their testing libraries but not Go’s. Its standard testing package follows a more direct and to-the-point approach. In fact, there isn’t even a single assertion function in the testing package, and writing idiomatic tests in Go isn’t that different from writing application code.
https://henvic.dev/posts/testing-go
7 Common Interface Mistakes in Go
https://medium.com/@andreiboar/7-common-interface-mistakes-in-go-1d3f8e58be60
Go is still a new language, and if you’re working with it, chances are that this is not your first programming language.
Coming from a different language, you bring forth both your experience as well as your biases. Things you used to do in your previous language might not be a good idea in Go.
https://medium.com/@andreiboar/7-common-interface-mistakes-in-go-1d3f8e58be60
bleve
https://github.com/blevesearch/bleve
A modern text/numeric/geo-spatial/vector indexing library for go
https://github.com/blevesearch/bleve