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

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
One Billion Rows Challenge in Golang

The One Billion Row Challenge (1BRC) is intended to be a fun exploration of how far modern Java can be pushed for aggregating one billion rows from a text file.


https://www.bytesizego.com/blog/one-billion-row-challenge-go
goquery

goquery brings a syntax and a set of features similar to jQuery to the Go language. It is based on Go's net/html package and the CSS Selector library cascadia. Since the net/html parser returns nodes, and not a full-featured DOM tree, jQuery's stateful manipulation functions (like height(), css(), detach()) have been left off.


https://github.com/PuerkitoBio/goquery
gologin

Package gologin provides chainable login http.Handler's for Google, GitHub, Twitter, Facebook, Bitbucket, Tumblr, or any OAuth1 or OAuth2 authentication providers.


https://github.com/dghubble/gologin
sarama

Sarama is an MIT-licensed Go client library for Apache Kafka.


https://github.com/IBM/sarama
nilaway

NilAway is a static analysis tool that seeks to help developers avoid nil panics in production by catching them at compile time rather than runtime. NilAway is similar to the standard nilness analyzer, however, it employs much more sophisticated and powerful static analysis techniques to track nil flows within a package as well across packages, and report errors providing users with the nilness flows for easier debugging.


https://github.com/uber-go/nilaway
atomic

Simple wrappers for primitive types to enforce atomic access.


https://github.com/uber-go/atomic
multierr

multierr allows combining one or more Go errors together.


https://github.com/uber-go/multierr
air

When I started developing websites in Go and using gin framework, it was a pity that gin lacked a live-reloading function. So I searched around and tried fresh, it seems not much flexible, so I intended to rewrite it better. Finally, Air's born. In addition, great thanks to pilu, no fresh, no air :)

Air is yet another live-reloading command line utility for developing Go applications. Run air in your project root directory, leave it alone, and focus on your code.

Note: This tool has nothing to do with hot-deploy for production.


https://github.com/cosmtrek/air
gofr

Gofr is an opinionated microservice development framework.


https://github.com/gofr-dev/gofr
How I keep myself Alive using Golang

In this blog I explore how I use an incident management mindset to manage a complex medical condition. I hope you enjoy it!


https://www.bytesizego.com/blog/keeping-alive-with-go
The Impact of Pre-allocating Slice Memory on Performance in Golang

During my code reviews, I often focus on whether the slice initialization in the code has allocated the expected memory space, that is, I always request to change from var init []int64 to init := make([]int64, 0, length) format whenever possible. However, I had no quantitative concept of how much this improvement affects performance, and it was more of a dogmatic requirement. This blog will introduce the theoretical basis of how pre-allocating memory improves performance, quantitative measurements, and tools for automated detection.


https://oilbeater.com/en/2024/03/04/golang-slice-performance
Composable HTTP Handlers using generics

https://www.willem.dev/articles/generic-http-handlers
When Kubernetes and Go don't work well together

Go is not aware of the limits set for its container, causing some issues not easy to track. This is a story about how I stumbled into one of them.


https://lalatron.hashnode.dev/when-kubernetes-and-go-dont-work-well-together
fgprof

fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.


https://github.com/felixge/fgprof
huma

A modern, simple, fast & flexible micro framework for building HTTP REST/RPC APIs in Go backed by OpenAPI 3 and JSON Schema.


https://github.com/danielgtaylor/huma
polaris

High performance workflow orchestrator for Golang


https://github.com/harshadmanglani/polaris
EchoVault

EchoVault is a highly configurable, distributed, in-memory data store and cache implemented in Go. It can be imported as a Go library or run as an independent service.


https://github.com/EchoVault/EchoVault
High-Speed Packet Transmission in Go: From net.Dial to AF_XDP

Pushing limits in Go: from net.Dial to syscalls, AF_PACKET, and lightning-fast AF_XDP. Benchmarking packet sending performance.


https://toonk.io/sending-network-packets-in-go
The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions

https://benhoyt.com/writings/go-1brc
The missing type in the Go standard library: Date!

The Go standard library uses a single overloaded type as a stand-in for both full datetimes1 and dates. This mostly “just works”, but slowly starts to degrade correctness in codebases where both datetime and date values need to interact.


https://engineering.hardfin.com/2024/02/date-the-missing-type