Go Library
4.12K subscribers
20 photos
63 files
803 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
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

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
bob

SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite


https://github.com/stephenafamo/bob
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

Entropy is a CLI tool that will scan your codebase for high entropy lines, which are often secrets.


https://github.com/EwenQuim/entropy
gcss

CSS written in Pure Go.


https://github.com/AccentDesign/gcss
hn-text

A fast, easy-to-use and distraction-free Hacker News terminal client.


https://github.com/piqoni/hn-text
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

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

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

Some quick bits about how to do go.mod version bumps.


https://carlosbecker.com/posts/pragmatic-gomod-bump
Shameless green: TDD in Go

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

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

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

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

A modern text/numeric/geo-spatial/vector indexing library for go


https://github.com/blevesearch/bleve