modulepackage
0.0.0-20211007220023-412dc8cf80b3
Repository: https://github.com/naftulikay/golang-webapp.git
Documentation: pkg.go.dev
# README
golang-webapp 
An example Golang service with batteries included to demonstrate building a full end-to-end web app.
Libraries
- Config and CLI
- github.com/spf13/cobra: Command-line argument parsing.
- github.com/spf13/viper: Configuration file and environment variable parsing.
- Database
- github.com/go-gorm/gorm: SQL database object-relational mapper (ORM).
- Dependency Injection
- github.com/google/wire: Google's dependency injection code generation framework.
- HTTP
- github.com/gorilla/mux: HTTP router/dispatcher.
- github.com/gorilla/handlers: Common handlers, it is used here for CORS.
- Observability
- github.com/uber-go/zap: Structured logging.
- Security
- github.com/golang-jwt/jwt: JWT token generation/validation with custom claims objects.
- github.com/howeyc/gopass: Read passwords from standard input.
- golang.org/x/crypto/argon2: Argon 2 key-derivation function for password hashing and validation.
- Swagger:
- github.com/swaggo/http-swagger: Generic HTTP handlers for serving generated Swagger docs.
- github.com/swaggo/swag: CLI utility for generating Swagger API schema from Go source code annotations.
- Testing:
- github.com/stretchr/testify: Assertion framework for intuitive test cases.
- Utilities:
- github.com/cenkalti/backoff: Retry with a configurable backoff and an optional limit of attempts.
- github.com/go-playground/validator: Tag-based struct validator library.
- github.com/hashicorp/go-multierror: Return multiple errors within a single error value.
- gopkg.in/guregu/null.v4: Null types for representing optional data.
License
Licensed at your discretion under either