I am working with the Go language since late 2017 and now, it evolved to my most used language for my personal projects. Also, since April 2022, I am now as well part of a Go development team in a company here in Germany. 🥳
I also created some packages myself which I am also using a lot in my projects, so I've also listed them here even though it is kind of a shameless plug. 😅
- Go Tour
- Go by Example
- Go Source Code
If you are already a bit into go, don't be shy to read the official sources of the Go language and built-in packages. It is well structured and documented. Also, there is no better source of best practices as from the developers themselves!
- paerser
My way-to-go configuration package for many config sources like YAML, JSON, env vars or CLI params. - godotenv
Dead simple .env file parsing package. - fiber
An easy to use web framework inspired by express using fasthttp under the hood. - fiber/websocket
Websocket server for fiber. - snowflake
My way-to-go package to generate unique, sortable and numeric IDs with embedded creation timestamps. - xid
My second way-to-go package to generate unique, sortable IDs when I am not using snowflakes. - logrus
Extensive logging package with a very intuitive and developer friendly API. - testify
Unit test toolkit with assertion and mocking utilities. - jwt
One of the many JWT implementations for go. - service
Need to pack your go app into a windows service or linux daemon? - nutsdb
Simple and easy to use local file key-value database as a great alternative to sqlite3. - mimetype
Guess mime types from file streams. - vibrant
Get the most prominent colors from an image. - fuzzy
Fuzzy string matching. - go-chart
Generate charts and export them as an image. - cron
Use crontab like expressions to schedule tasks. - promptui
Build interactive CLI tools with this package. - tablewriter
Print data in ASCII tables. - resize
Resize / Rescale images. - go-qrcode
Create QR Codes. - pinger
IMCP network ping implementation.
- timedmap
A very simple, thread safe in-memory key-value map with entry expiration. - ken
An interaction (slash) command wrapper for discordgo. - dgrs
An alternative state manager for discordgo using Redis to make state persistent and syncable across shards. - sop
A Go 1.18+ package which brings functional abstractions likemap
,filter
,first
,flat
and much more to slices. - di
A very prototype dependency injection package for Go 1.18+ using generics and reflection. - seiteki
A package and application to easily serve static files of an SPA which uses fasthttp under the hood. - ratelimit
Very simple implementation of a token bucket based rate limiter. - slicerdicer
Slices an image into smaller parts of this image.