# README
Go Commons
Find yourself needing the same packages over and over?
Me too.
Instead of re-writting them for each project/client/company I decided it was time to do it one more time in public.
Getting Started
To use these packages simply:
go get github.com/corsc/go-commons/
(vendoring recommended)
Packages
- Cache - A simple cache with pluggable storage (currently includes Redis and DynamoDb storage)
- Concurrency - Packages related to concurrency
- Concurrent Map - A concurrent map implementations with pluggable sharding implementations
- HTTP - Packages related to serving or consuming HTTP
- Middleware - Middleware to decorate your HTTP handlers with additional features/functionality. Including
- I/O Closer - a convenience function for closing and optionally logging io.Closers in 1 line (useful for defer calls)
- Resilience - Packages related to resilience
Prerequisites
- Go 1.8
- (optional) GoMetaLinter
- (optional) My GoMetaLinter Config
Contributions
Contributions, suggestions, bug request, etc are all welcome. Please use Github Issues and Pull Requests.
Running the tests
Nothing special, standard go test ./...
will get the job done.
If me, you want the fastest possible tests, I would skip vendor by using:
go test $(go list ./... | grep -v /vendor)
Lint checking contributions
Please check all PRs before sending them using the following settings
gometalinter --config=gometa-config.json ./...
Authors
- Corey Scott - corsc
License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details
Acknowledgments
- Chao Gao - reterVision - Code Reviews and Advice
- Ryan Cumming - etaoins - Code Reviews and Advice
# Packages
Package cache please refer to README.md.
Package concurrency please refer to README.md.
Package http please refer to README.md.
Package iocloser please refer to README.md.
Package resilience please refer to README.md.
Package testing please refer to README.md.