Go Library
4.13K subscribers
20 photos
63 files
805 links
Go (Golang) Library

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

Looping seems like a basic topic: Write a for loop with a termination condition, and you’re done. However there’s a lot of ways you can write a for loop in Go. Knowing more about the different versions of for will help you choose the best option to accomplish your tasks and it will help you prevent some bugs.


https://www.ardanlabs.com/blog/2024/03/for-loops-and-more-in-go.html
Visual Guide to Slices in Go

We use slices everywhere in Go. With maps, they are fundamental data types we use to store data. Today we will dive into the internals and see how slices work under the hood.


https://sazak.io/articles/visual-guide-to-slices-in-go-2024-03-25
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