Skip to content
This repository has been archived by the owner on Jun 9, 2023. It is now read-only.

Latest commit

 

History

History
72 lines (68 loc) · 4.24 KB

go.md

File metadata and controls

72 lines (68 loc) · 4.24 KB

Go

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. 😅

Learn Go

  • 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!

Useful Packages

  • 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.

My self-created Packages

  • 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 like map, 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.