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

Реклама: @ostinostin
Контент: @mxssl
加入频道
Implementing a distributed key-value store on top of implementing Raft in Go

https://notes.eatonphil.com/2023-05-25-raft.html
grank.io helps you navigate in the golang world

Choosing the right dependencies is more of an art than a science. People usually apply different heuristics, like checking github star counts, commit frequency, issue counts, number of contributors, etc. After one of these discussion why i have chosen library A instead of B or C i came to an idea that is presented here.

Luckily most of the golang dependencies (libraries, frameworks) are open-source and located in one place, github.com. Golang's package import convention tells us how to actually find the source code of the dependencies, so we can check easily the dependency graph of go packages. If we wanna compare packages we could check which packages are used by more "important" packages/projects that sounds similar to idea od PageRank how importance of web pages can be computed. Even more we have additional useful information put together manually by the members of the community for example the star counts on a repo which could be used as weight in the computation.

grank.io is showing a rank list based on this weighted PageRank value of github repos and for each analysed repositories, packages it shows the packages that are dependent on it or it depends on. The source code is available on github.

https://www.grank.io
How to include Git version information in Go

TL;DR: Just import github.com/carlmjohnson/versioninfo and use versioninfo.Revision to automatically include a Git hash in your Go application.

Curious how it works? Want to make your own version info package? Read on.

https://blog.carlmjohnson.net/post/2023/golang-git-hash-how-to
requests

The problem: Go's net/http is powerful and versatile, but using it correctly for client requests can be extremely verbose.

The solution: The requests.Builder type is a convenient way to build, send, and handle HTTP requests. Builder has a fluent API with methods returning a pointer to the same struct, which allows for declaratively describing a request by method chaining.

Requests also comes with tools for building custom http transports, include a request recorder and replayer for testing.

https://github.com/carlmjohnson/requests
ls-lint

An extremely fast directory and filename linter - Bring some structure to your project filesystem

https://github.com/loeffel-io/ls-lint
ftp

FTP client package for Go

https://github.com/jlaffaye/ftp
grok

simple library to use/parse grok patterns with go (100%)

https://github.com/vjeantet/grok
goxygen

Generate a modern Web project with Go and Angular, React or Vue in seconds

https://github.com/Shpota/goxygen
email-verifier

A Go library for email verification without sending any emails.

https://github.com/AfterShip/email-verifier
grpc-gateway

gRPC to JSON proxy generator following the gRPC HTTP spec

https://github.com/grpc-ecosystem/grpc-gateway
batch-image-generator

Generate dynamic image content based on a template image and a CSV file.

https://github.com/codenoid/batch-image-generator
Go Toolchains

Starting in Go 1.21, the Go distribution consists of a go command and a bundled Go toolchain, which is the standard library as well as the compiler, assembler, and other tools. The go command can use its bundled Go toolchain as well as other versions that it finds in the local PATH or downloads as needed.

https://go.dev/doc/toolchain
geziyor

Geziyor is a blazing fast web crawling and web scraping framework. It can be used to crawl websites and extract structured data from them. Geziyor is useful for a wide range of purposes such as data mining, monitoring and automated testing.

https://github.com/geziyor/geziyor
compress

Optimized Go Compression Packages

https://github.com/klauspost/compress