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.https://www.grank.io
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.
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.https://blog.carlmjohnson.net/post/2023/golang-git-hash-how-to
Curious how it works? Want to make your own version info package? Read on.
requests
The problem: Go's net/http is powerful and versatile, but using it correctly for client requests can be extremely verbose.https://github.com/carlmjohnson/requests
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.
ls-lint
An extremely fast directory and filename linter - Bring some structure to your project filesystemhttps://github.com/loeffel-io/ls-lint
goxygen
Generate a modern Web project with Go and Angular, React or Vue in secondshttps://github.com/Shpota/goxygen
Building Our First GraphQL Server with Go: An Implementation Guide
https://tech.trivago.com/post/2023-05-17-building-our-first-graphql-server-with-go-an-implementation-guide
https://tech.trivago.com/post/2023-05-17-building-our-first-graphql-server-with-go-an-implementation-guide
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 spechttps://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
Go: Using pointers to reduce copies is premature optimization
https://trinitroglycerin.github.io/2023/06/10/Go-Using-pointers-to-reduce-copies-is-premature-optimization
https://trinitroglycerin.github.io/2023/06/10/Go-Using-pointers-to-reduce-copies-is-premature-optimization
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
gotestsum
'go test' runner with output optimized for humans, JUnit XML for CI integration, and a summary of the test results.https://github.com/gotestyourself/gotestsum
golang interview prep
This repo contains Golang code that does not follow best practises, contains bugs and security issues. It is intended to be used as an interview exercise or a practise exercise for jr/mid-level Go engineers.https://github.com/MatthewJamesBoyle/golang-interview-prep
rapid
Rapid is a Go library for property-based testing.https://github.com/flyingmutant/rapid
Rapid checks that properties you define hold for a large number of automatically generated test cases. If a failure is found, rapid automatically minimizes the failing test case before presenting it.