Fast
Radix tree based routing, small memory foot print. No reflection. Predictable API performance.
Middleware support
An incoming HTTP request can be handled by a chain of middleware and the final action. For example: Logger, Authorization, GZIP and finally post a message in the DB.
Crash-free
Gin can catch a panic occurred during a HTTP request and recover it. This way, your server will be always available. It’s also possible to report this panic to Sentry for example!
JSON validation
Gin can parse and validate the JSON of a request, checking, for example, the existence of required values.
Routes grouping
Organize your routes better. Authorization required vs non required, different API versions. In addition, groups can be nested infinitely without degrading performance.
Error management
Gin provides a convenient way to collect all the errors occurred during a HTTP request. Eventually, middleware can write them to a log file, to a database and send them through the network.
Rendering built-in
Gin provides an easy to use API for JSON, XML and HTML rendering.
Extendable
Creating new middleware is so easy, just check out the sample code.