Go Library
4.11K subscribers
20 photos
63 files
798 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
awesome-go

A curated list of awesome Go frameworks, libraries and software


https://github.com/avelino/awesome-go
Benchmarks and performance testing

A big part of programming is about making choices:

- What data type do I use? A map, a slice, something more fancy?
- Do I implement this using recursion or a loop?
- Should I pass a value or a pointer?
- How to determine the best choice?

One way is to measure performance using benchmarks.

Go has built-in support for benchmarking in the testing package.

In this article you’ll see how benchmarks are structured, what to keep in mind when writing them and how to execute them.

In the end we’ll also look at a real-world inspired example repository.


https://www.willem.dev/articles/benchmarks-performance-testing
Fuzz Testing Go HTTP Services

As a developer, you can't envision all of the possible inputs your programs or functions could receive. Even though you can define the major edge cases, you still can't predict how your program will behave in the case of some weird unexpected input. In other words, you can only find bugs you expect to find.

That's where fuzz testing or fuzzing comes to the rescue.


https://packagemain.tech/p/fuzzing-http-services-golang
Go and Postgres Listen/Notify or: How I Learned to Stop Worrying and Love PubSub

This post is going to show you how to use Listen/Notify in your Golang applications with pgx Conn.WaitForNotification


https://brojonat.com/posts/go-postgres-listen-notify
go-graphviz

Go bindings for Graphviz


https://github.com/goccy/go-graphviz
notify

A dead simple Go library for sending notifications to various messaging services.


https://github.com/nikoksr/notify
bun

SQL-first Golang ORM


https://github.com/uptrace/bun
asynq

Asynq is a Go library for queueing tasks and processing them asynchronously with workers. It's backed by Redis and is designed to be scalable yet easy to get started.


https://github.com/hibiken/asynq
BemiDB

BemiDB is a Postgres read replica optimized for analytics. It consists of a single binary that seamlessly connects to a Postgres database, replicates the data in a compressed columnar format, and allows you to run complex queries using its Postgres-compatible analytical query engine.


https://github.com/BemiHQ/BemiDB
Writing secure Go code

What does it mean to keep security in mind when writing Go code? Answering this question in one short article seems impossible. For this reason, we will narrow it down to a few specific practices.


https://jarosz.dev/article/writing-secure-go-code
lazyjournal

TUI for journalctl, logs in the file system and docker containers for quick viewing and filtering with fuzzy find and regex support.


https://github.com/Lifailon/lazyjournal
Building thread-safe abstractions in Java versus Go

https://rybicki.io/blog/2024/11/03/multithreaded-code-java-golang.html
How to Build Smaller Container Images: Docker Multi-Stage Builds

https://labs.iximiuz.com/tutorials/docker-multi-stage-builds
vgt

vgt is a tool for visualising Go test results in a browser.


https://github.com/roblaszczak/vgt
jsony

A blazing fast and safe Go package for serializing JSON.


https://github.com/orsinium-labs/jsony
pg_flo

The easiest way to move and transform data between PostgreSQL databases using Logical Replication.


https://github.com/pgflo/pg_flo