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

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
Pushing SQLite to its limits with Go while having fun

https://www.terlici.com/2023/11/06/pushing-sqlite-limits.html
cpuid

Package cpuid provides information about the CPU running the current program.

CPU features are detected on startup, and kept for fast access through the life of the application. Currently x86 / x64 (AMD64/i386) and ARM (ARM64) is supported, and no external C (cgo) code is used, which should make the library very easy to use.


https://github.com/klauspost/cpuid
miniredis

Pure Go Redis test server, used in Go unittests.


https://github.com/alicebob/miniredis
River: a Fast, Robust Job Queue for Go + Postgres

https://brandur.org/river
NilAway: Practical Nil Panic Detection for Go

Uber has widely adopted Go as a primary programming language for implementing backend services and libraries due to its high performance. The Go monorepo is the largest codebase at Uber, comprising 90 million lines of code (and growing). This makes tooling for writing reliable Go code a critical part of our development infrastructure.

Pointers (variables that hold the memory addresses of other variables instead of their actual values) are an integral part of the Go programming language and facilitate efficient memory management and effective data manipulation. Therefore, programmers use pointers extensively in writing Go programs for various purposes such as in-place data modification, concurrent programming, easy data sharing, optimizing memory usage, and facilitating interfaces and polymorphism. While pointers are powerful and widely used, it is essential to use them carefully and judiciously to avoid common pitfalls like nil pointer dereferences causing nil panics.


https://www.uber.com/en-NL/blog/nilaway-practical-nil-panic-detection-for-go
12 Personal Go Tricks That Transformed My Productivity

You may not have seen these techniques before, as I specifically developed them for my team’s use.


https://blog.devtrovert.com/p/12-personal-go-tricks-that-transformed
ergo

Ergo (formerly known as Oragono) is a modern IRC server written in Go.


https://github.com/ergochat/ergo
prest

pREST (PostgreSQL REST), is a simple production-ready API, that delivers a instant, realtime, and high-performance application on top of your existing or new Postgres database.


https://github.com/prest/prest
prisma-client-go

Prisma Client Go is an auto-generated query builder that enables type-safe database access and reduces boilerplate. You can use it as an alternative to traditional ORMs such as gorm, xorm, sqlboiler and most database-specific tools.


https://github.com/steebchen/prisma-client-go
orchestra

Orchestra is a library to manage long running go processes.


https://github.com/stephenafamo/orchestra
goqu

goqu is an expressive SQL builder and executor


https://github.com/doug-martin/goqu
gofakeit

Random fake data generator written in go


https://github.com/brianvoe/gofakeit
Python is Easy. Go is Simple. Simple != Easy

Python and Go have distinct qualities that can complement each other.


https://preslav.me/2023/11/27/python-is-easy-golang-is-simple-simple-is-not-easy
Making Games in Go for Absolute Beginners

https://threedots.tech/post/making-games-in-go
Demystifying function parameters in Go

In this post we're going to talk about how (and why!) different types of function parameters behave differently in Go.

If you're new (or even not-so-new) to Go, this can be a common source of confusion and questions. Why do functions generally mutate maps and slices, but not other data types? Why isn't my slice being mutated when I append to it in a function? Why doesn't assigning a new value to a pointer parameter have any effect outside the function?

Once you understand how functions and the different Go types work, the answers to these kind of questions becomes clearer. You'll discover that Go's behavior consistently follows a few fairly straightforward rules, which I'll aim to highlight in this post.


https://www.alexedwards.net/blog/demystifying-function-parameters-in-go
etcd and concurrency stm

This blog post explores a little bit of raft, etcd, Go and the horrible rakes we walked into during my time at InfluxData. After taking some time to better understand some of the core concepts under etcd, I think I've finally got my head around an issue I opened that never got any attention, but that sat in my subconscious unsolved (at-least from my own understanding perspective).


https://george.macro.re/posts/etcd-and-concurrency-stm
Go Fact: Zero-sized Field at the Rear of a Struct Has Non-zero Size

https://i.hsfzxjy.site/zst-at-the-rear-of-go-struct
htmx-go

htmx-go is a type-safe library for working with HTMX in Go.


https://github.com/angelofallars/htmx-go
sdns

A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy.


https://github.com/semihalev/sdns