Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. https://gin-gonic.github.io/gin/
- gin-contrib/cors Gin's CORS middleware
- gin-contrib/pprof Gin's pprof middleware
- ulule/limiter Gin's rate limit middleware
- aviddiviner/gin-limit Stay under the limit with this handy Gin middleware.
- imtoori/gin-redis-ip-limiter Simple gin middleware ip limiter
- gin-contrib/cache Gin's page cache middleware
- gin-contrib/multitemplate Gin's custom HTML render to support multi templates
- appleboy/gin-jwt Gin's jwt middleware
- gin-contrib/authz Authz is an authorization middleware for Gin, it's based on https://github.com/casbin/casbin.
- gin-contrib/gzip Gin's gzip middleware
- gin-contrib/sentry Middleware to integrate with sentry crash reporting
- gin-contrib/sessions Gin's middleware for session management with multi-backend support (currently cookie, Redis, Memcached, MongoDB)
- gin-contrib/static Gin's static middleware,
r.Use(static.Serve("/static", static.LocalFile("/tmp", true)))
- gin-contrib/secure Gin's secure middleware
- swaggo/gin-swagger Gin's middleware to automatically generate RESTful API documentation with Swagger 2.0
- appleboy/gin-status-api Gin's middleware for golang cpu, memory, gc, etc information api handler
- gin-contrib/location Gin's middleware to expose the server's hostname and scheme
- fatihkahveci/gin-inspector Gin's middleware for investigating http request.
- yasaricli/gah Gin's authentication handlers.
- axiaoxin-com/ratelimiter gin's middleware for token bucket ratelimiter.
- joffref/opa-middleware - Provides a Gin's OPA middleware.
- darkweak/souin - HTTP cache middleware, RFC-7234 compliant with the
Cache-Status
header support and many other cool features.
- Bose/go-gin-logrus Gin Web Framework for using Logrus as the Gin logger with Tracing middleware
- gin-contrib/zap Alternative logging through uber-go/zap
- axiaoxin-com/logging GinLogger uses zap to log detailed access logs in JSON or text format with trace id, supports flexible and rich configuration, and supports automatic reporting of log events above error level to sentry.
- foolin/goview Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. Supports ginview, echoview and gorice.
- foolin/gin-template 🔥 (Deprecated) Golang template for gin framework with layout, cache, partial, multiple templates support.
- html/template Gin's default HTML template
- robvdl/pongo2gin Gin's pongo2 HTML template plugin, if you like django, you will like it also
- FlowerWrong/plushgin Gin's plush HTML template plugin, if you like erb, you will like it also
- gin + gorilla/websocket:
conn, err := wsupgrader.Upgrade(w, r, nil)
- olahol/melody: Melody is websocket framework based on gorilla/websocket and gin.
- zsais/go-gin-prometheus Gin Web Framework Prometheus metrics exporter
- szuecs/gin-gomonitor Gin middleware for monitoring
- semihalev/gin-stats Gin middleware for request stats
- Massad/gin-boilerplate Gin Framework with a structured starter project that defaults to PostgreSQL database and Redis as the session storage.
- wangsongyan/wblog Blog based on gin and gorm
- b3log/pipe A small and beautiful blogging platform, demo
- TeaMeow/KitSvc Microservice framework based on gin, consul, prometheus, eventStore, gorm and NSQ
- gin-gonic/examples A repository to host examples and tutorials for Gin. https://gin-gonic.com/docs/
- appleboy/gorush A push notification server written in Go
- ErikJiang/market_monitor go starter kit with(gin,redigo,gorm,zerolog,cron,viper,jwt-go,swaggo)
- go-web-applications-and-microservices-using-gin Building Go Web Applications and Microservices Using Gin
- go-ego/ego A full-stack web framework written in Go, lightweight and efficient front-end component solutions, based on gin. The front-end is compiled, does not affect the back-end.
- LyricTian/gin-admin RBAC scaffolding based on Gin + Casbin + Ant Design React
- chenhg5/morningo A Web develop project skeleton base on Gin
- vsouza/go-gin-boilerplate A starter project with Golang, Gin and DynamoDB
- ribice/gorsk-gin Idiomatic Golang Restful Starter Kit using Gin
- xiaobopang/go_init Scaffolding based on gin, goredis, gorm, websocket, rabbitmq
- axiaoxin-com/pink-lady Pinklady is a template project of gin app, which encapsulates mysql, redis, logging, viper, swagger, middlewares and other common components.
- dcu/gin-scaffold Gin scaffold is CLI to generate scaffolds for the gin gonic framework.
https://medium.com/wtf-dial/wtf-dial-domain-model-9655cd523182
Application design is a hard problem. There are so many design decisions to make and without a set of solid principles to guide you the problem is made even worse. We’ve looked at several current approaches to Go application design and we’ve seen many of their flaws. I believe approaching design from the standpoint of dependencies makes code organization simpler and easier to reason about. First we design our domain language. Then we isolate our dependencies. Next we introduce mocks to isolate our tests. Finally, we tie everything together within our main package.