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

Реклама: @ostinostin
Контент: @mxssl
加入频道
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
Learn Go with Tests

Learn test-driven development with Go
- Explore the Go language by writing tests
- Get a grounding with TDD. Go is a good language for learning TDD because it is a simple language to learn and testing is built-in
- Be confident that you'll be able to start writing robust, well-tested systems in Go

https://quii.gitbook.io/learn-go-with-tests
My Preferred Go Stack

A few weeks ago, a friend asked how I wrote code so swiftly. The secret isn’t maintaining a template repo but having a set of preferred libraries that harmonize with my coding style. In this post, I will introduce you to these libraries, sharing insights on their benefits and providing example code snippets to illustrate their ease of use. I encourage you to explore the extended documentation linked to understand each library’s full scope and capabilities.

https://jtarchie.com/posts/2023-09-30-my-preferred-go-stack
go-jsonschema

go-jsonschema is a tool to generate Go data types from JSON Schema definitions.

This tool generates Go data types and structs that corresponds to definitions in the schema, along with unmarshalling code that validates the input JSON according to the schema's validation rules.

https://github.com/omissis/go-jsonschema