Go Library
4.09K subscribers
16 photos
63 files
716 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
加入频道
fx

Terminal JSON viewer & processor

https://github.com/antonmedv/fx
Awesome slog

Collection of log/slog related projects.

https://github.com/go-slog/awesome-slog
Use your database to power state machines

Most people are familiar with state machines and know their value. The average state machine library can help you model states, prevent invalid transitions, and produce diagrams that help even non-technical people understand how the code behaves.

This article isn’t about making the case for state machines. It’s about how you take the concept of a state machine and have it work alongside your database models, leveraging your relational database (say Postgres or MySQL) to help you build concurrent-safe and efficient software.

https://blog.lawrencejones.dev/state-machines
pterm

PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more 🚀 It's completely configurable and 100% cross-platform compatible.

https://github.com/pterm/pterm
static-server

Simple static file server, with support of HTTP and HTTPS. Useful for local testing of web applications.

https://github.com/eliben/static-server
maroto

A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple.

https://github.com/johnfercher/maroto
goyave

Goyave is a progressive and accessible web application framework focused on REST APIs, aimed at making backend development easy and enjoyable. It has a philosophy of cleanliness and conciseness to make programs more elegant, easier to maintain and more focused. Goyave is an opinionated framework, helping your applications keeping a uniform architecture and limit redundancy. With Goyave, expect a full package with minimum setup.

https://github.com/go-goyave/goyave
resty

Simple HTTP and REST client library for Go (inspired by Ruby rest-client)

https://github.com/go-resty/resty
tproxy

A cli tool to proxy and analyze TCP connections.

https://github.com/kevwan/tproxy
skipper

Skipper is an HTTP router and reverse proxy for service composition. It's designed to handle >300k HTTP route definitions with detailed lookup conditions, and flexible augmentation of the request flow with filters. It can be used out of the box or extended with custom lookup, filter logic and configuration sources.

https://github.com/zalando/skipper
The Art of Building Fault-Tolerant Software Systems

Eight Pillars of Fault-tolerant Systems:
- Redundancy and Replication
- Load balancing
- Modularity
- Graceful degradation
- Circuit breaker
- Fail-fast
- Retries
- Rate limiting

https://www.codereliant.io/the-art-of-building-fault-tolerant-software-systems
pgroll

pgroll is an open source command-line tool that offers safe and reversible schema migrations for PostgreSQL by serving multiple schema versions simultaneously. It takes care of the complex migration operations to ensure that client applications continue working while the database schema is being updated. This includes ensuring changes are applied without locking the database, and that both old and new schema versions work simultaneously (even when breaking changes are being made!). This removes risks related to schema migrations, and greatly simplifies client application rollout, also allowing for instant rollbacks.

https://github.com/xataio/pgroll
unkey

Open Source API Key Management

https://github.com/unkeyed/unkey
Organizing a Go module

A common question developers new to Go have is “How do I organize my Go project?”, in terms of the layout of files and folders. The goal of this document is to provide some guidelines that will help answer this question.

https://go.dev/doc/modules/layout
Fault tolerance and resilience patterns for Go

Failsafe-go is a library for building fault tolerant Go applications. It works by wrapping executable logic with one or more resilience policies, which can be combined and composed as needed. Policies include Retry, Circuit Breaker, Rate Limiter, Timeout, Bulkhead, and Fallback.

https://failsafe-go.dev
sonnet

High performance JSON library in Go.

https://github.com/sugawarayuuta/sonnet
afero

Afero is a filesystem framework providing a simple, uniform and universal API interacting with any filesystem, as an abstraction layer providing interfaces, types and methods. Afero has an exceptionally clean interface and simple design without needless constructors or initialization methods.

https://github.com/spf13/afero
automaxprocs

Automatically set GOMAXPROCS to match Linux container CPU quota.

https://github.com/uber-go/automaxprocs
krakend-ce

KrakenD Community Edition: High-performance, stateless, declarative, API Gateway written in Go.

https://github.com/krakend/krakend-ce
tabby

Tabby is a self-hosted AI coding assistant, offering an open-source and on-premises alternative to GitHub Copilot.

https://github.com/TabbyML/tabby
Rust Vs Go: A Hands-On Comparison

Oh no, not another 'Is Rust better than Go?' article. Seriously, haven't we all had our fill of these comparisons by now? But before you sigh in exasperation, hear us out!

Many comparisons between Go and Rust emphasize their differences in syntax and the initial learning curve. However, ultimately, what matters is the ease of use for non-trivial projects.

Since we are a platform-as-a-service provider, we think that we can contribute the most by showing you how to build a small web service in both languages. We will use the same task and popular libraries for both languages to compare the solutions side-by-side so that you can make up your own mind and get a feel for what it's like to work in each ecosystem.

So, before you dismiss this as 'just another comparison', give it a read. There might be some details that other comparisons have missed before.

https://www.shuttle.rs/blog/2023/09/27/rust-vs-go-comparison