Open source repositories


I have a number of open source Go modules that you might find useful in your own projects. I regularly use these in my own work for clients, and have found that they save me reinventing the wheel for every new project. You may notice that every one of these repositories is as simple as possible; as Dijkstra said, simplicity "is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better." I have never been a fan of complexity in code, and these repositories reflect that.


github.com/tsawler/postal
A simple worker pool which makes sending email easy and efficient. Supports SMTP and MailGun.

github.com/tsawler/toolbox
A reusable Go module with things helpful when creating web based applications.

github.com/tsawler/page
A simple package that makes rendering Go HTML templates as painless as possible. It has no dependencies outside of the standard library.

github.com/tsawler/persist
A simple library to reduce boilerplate code when connecting to a database.

github.com/tsawler/streamer
A package which encodes videos to web-ready format (MP4, HLS, and HLS encrypted) using a worker pool.

github.com/tsawler/jot
A package which generates and verifies JWT tokens. It generates and verifies both auth tokens and refresh tokens.

github.com/tsawler/pasty
Pasty is a wrapper which makes working with Paseto tokens as simple as possible.

github.com/tsawler/remember
Package remember provides an easy way to implement a Redis or Badger cache in your Go application.

github.com/tsawler/itsdangerous
A simple to use, high-performance, Go (golang) MAC signer.

github.com/tsawler/signer
A simple package to sign and verify URLs.

github.com/tsawler/ws
Package ws is a library which makes it easy to use WebSockets (specifically Gorilla Websockets) in your Go application.