A collection of reusable Go packages for web development. The goal is to remain simple and idiomatic, while adhering to the standard library's APIs when possible.
go get github.com/nickhstr/goweb
Note: Go modules are the only supported dependency tool.
- General middleware
- Configurable logger - built on github.com/rs/zerolog
- Router - routing with github.com/gorilla/mux
- Server - dns lookup caching and automatic port resolution
- Data access layer - request client with caching
- Cache - a key-value cache, using Redis
- Newrelic - handler wrapper and custom logging, using github.com/newrelic/go-agent
- Environment variable helpers
- Mongodb helpers
Install dependencies:
make
or make install
Run make help
to view the available common tasks, such as linting, testing, etc.