Gin - HTTP web framework written in Go (Golang)

  •        394

Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love You can add global, per-group, and per-route middlewares, thousands of nested groups, nice JSON validation and rendering. And the performance will be still great. Gin uses httprouter internally, the fastest HTTP router for Golang. Httprouter was created by Julien Schmidt and it’s based in a Radix Tree algorithm.

It has very good middleware support, A incoming HTTP request can be handled by a chain of middlewares and the final action. For example: Logger, Authorization, GZIP and finally post a message in the DB.

Gin can catch a panic occurred during a HTTP request and recover it. This way, your server will be always available.

https://gin-gonic.github.io/gin/
https://github.com/gin-gonic/gin

Tags
Implementation
License
Platform

   




Related Projects

gongular - A different approach to Go web frameworks

  •    Go

gongular is an HTTP Server Framework for developing APIs easily. It is like Gin Gonic, but it features Angular-like (or Spring like) dependency injection and better input handling. Most of the time, user input must be transformed into a structured data then it must be validated. It takes too much time and is a repetitive work, gongular aims to reduce that complexity by providing request-input mapping with tag based validation.Note: gongular is an opinionated framework and it heavily relies on reflection to achieve these functionality. While there are tests to ensure it works flawlessly, I am open to contributions and opinions on how to make it better.

faygo - Faygo is a fast and concise Go Web framework that can be used to develop high-performance web app(especially API) with fewer codes

  •    Go

Faygo is a fast and concise Go Web framework that can be used to develop high-performance web app(especially API) with fewer codes. Just define a struct handler, faygo will automatically bind/verify the request parameters and generate the online API doc.

swoft - ⚡️ Modern High performance AOP and Coroutine PHP Framework, base on Swoole

  •    PHP

The first high-performance PHP coroutine full-stack componentization framework based on Swoole native coroutine, built-in coroutine web server and commonly-used coroutine client, resident memory, which has no dependency on PHP-FPM, asynchronous non-blocking IO implementation, similar to synchronous client style of writing to achieve the use of asynchronous clients, without complex asynchronous callback, no tedious yield, similar Go language coroutines, flexible annotations framework, a powerful global dependency injection container base on annotations, and great service governance , flexible and powerful AOP, PSR specification implementation, etc., could be used to build high-performance Web systems, APIs, middleware, basic services, microservice and so on. Chinese Document English Document Not yet, please help us write it.


go-web-framework-benchmark - :zap: Go web framework benchmark

  •    Go

This benchmark suite aims to compare the performance of Go web frameworks. It is inspired by Go HTTP Router Benchmark but this benchmark suite is different with that. Go HTTP Router Benchmark suit aims to compare the performance of routers but this Benchmark suit aims to compare whole HTTP request processing.

ffead-cpp - Framework for Enterprise Application Development, c++ framework, c++ web framework, c++ application framework, c++ rest framework, c++ soap framework, c++ web sites,c++ web applications, c++ driven web development - c++

  •    C++

ffead-cpp is a web-framework, application framework, utilities all bundled into one. It also provides an embedded HTTP/HTT2/Web-Socket compliant high-performance server core. It is a collection of modules all geared towards performing individual roles which together form the cohesive back-bone of ffead-cpp. It provides a very simple to use and maintain web-framework library with advanced features like Reflection, Dependency Injection (IOC), Inbuilt REST/SOAP support, Security/Authentication features. Moreover implementation for interfacing to caching tools like Memcached/Redis are provided in-built. Database integration/ORM framework (SDORM) solves all major issues with respect to interfacing with SQL/No-SQL database alike.

Blade - Lightning fast and elegant MVC framework for Java8

  •    Java

Blade is a pursuit of simple, efficient Web framework, so that Java web development even more powerful, both in performance and flexibility. The design is simple, easy to understand and doesn't introduce many layers between you and the standard library. The goal of this project is that the users should be able to understand the whole framework in a single day. It supports RESTful style routing interface. It has no invasive interceptors and provides the writing of DSL grammar.

blink - A high performance web framework and application server in PHP.

  •    PHP

Blink is a micro web framework for building long-running and high performance services, the design heavily inspired by Yii2 and Laravel. Blink aims to provide the most expressive and elegant API and try to make the experience of web development as pleasant as possible. Besides, Blink is also an application server that can serve requests directly in PHP, without php-fpm or Apache's mod_php. we use the Swoole extension as the underlying networking library. This can easily make our PHP application 100% faster in just a blink.

iris - The fastest web framework for Go in (THIS) Earth

  •    Go

Iris is a fast, simple and efficient micro web framework for Go. It provides a beautifully expressive and easy to use foundation for your next website, API, or distributed app.Iris may have reached version 8, but we're not stopping there. We have many feature ideas on our board that we're anxious to add and other innovative web development solutions that we're planning to build into Iris.

gin - Live reload utility for Go web servers

  •    Go

gin is a simple command line utility for live-reloading Go web applications. Just run gin in your app directory and your web app will be served with gin as a proxy. gin will automatically recompile your code when it detects a change. Your app will be restarted the next time it receives an HTTP request.gin adheres to the "silence is golden" principle, so it will only complain if there was a compiler error or if you succesfully compile after an error.

goliath - Goliath is a non-blocking Ruby web server framework

  •    Ruby

Goliath is an open source version of the non-blocking (asynchronous) Ruby web server framework. It is a lightweight framework designed to meet the following goals: bare metal performance, Rack API and middleware support, simple configuration, fully asynchronous processing, and readable and maintainable code (read: no callbacks). The framework is powered by an EventMachine reactor, a high-performance HTTP parser and Ruby 1.9+ runtime. The one major advantage Goliath has over other asynchronous frameworks is the fact that by leveraging Ruby fibers introduced in Ruby 1.9+, it can untangle the complicated callback-based code into a format we are all familiar and comfortable with: linear execution, which leads to more maintainable and readable code.

CleverGo - High Performance Web Framework in Go

  •    Go

CleverGo built in top of fasthttp, it is a simple, high performance and secure web framework for Go.

Macaron - A high productive and modular web framework in Go.

  •    Go

Package macaron is a high productive and modular web framework in Go.The minimum requirement of Go is 1.3.

web2py - Python Web Framework

  •    Python

web2py is a full-stack framework for rapid development of fast, scalable, secure and portable database-driven web-based applications. This framework is based on Model-View-Controller design and it has support to Server-side form validation and postbacks. It has the ability to generate forms from database tables and it includes an extensive set of validators.

Revel Framework - A high productivity, full-stack web framework for the Go language.

  •    Go

Revel high productivity, full-stack web framework for the Go language. It provides routing, parameter parsing, validation, session/flash, templating, caching, job running, a testing framework, and even internationalization. It builds on top of the Go HTTP server, which can serve three to ten times as many requests as Rails across a variety of loads.

Opa - Elegant language for Web

  •    Closure

Opa is a concise and elegant language for writing scalable and distributed web applications. Opa pushes boundaries of the state of the art in web security by making its application immune to XSS attacks, SQL injections and more. Opa is designed to get you to your finished app faster, concentrating only on the interesting parts, without the hassle of writing the glue or of using a programming language against its original design.

Telosys - Global framework on AJAX and JavaEE

  •    Java

Telosys is a lightweight global framework based on AJAX and standard JavaEE technologies. Its pragmatic approach allows to build easily business web applications. Telosys is a self-sufficient solution that covers seamlessly all the application layers (presentation, persistence, services, navigation, internationalization, authentication, etc…).

Beego - Web Framework for Go

  •    Go

Beego is an open-source, high-performance, modular, full-stack web framework. Its feature include Restful support, MVC model, With powerful built-in modules including session control, caching, logging, configuration parsing, performance supervising, context handling, ORM supporting, and requests simulating and lot more.

turbo - Turbo is a framework built for LuaJIT 2 to simplify the task of building fast and scalable network applications

  •    Lua

Turbo is a framework built for LuaJIT 2 to simplify the task of building fast and scalable network applications. It uses a event-driven, non-blocking, no thread design to deliver excellent performance and minimal footprint to high-load applications while also providing excellent support for embedded uses. The toolkit can be used for HTTP REST API's, traditional dynamic web pages through templating, open connections like WebSockets, or just as high level building blocks for native speed network applications. First and foremost the framework is aimed at the HTTP(S) protocol. This means web developers and HTTP API developers are the first class citizens. But the framework contains generic nuts and bolts such as; a I/O loop, IO Stream classes, customizeable TCP (with SSL) server classes giving it value for everyone doing any kind of high performance network application. It will also speak directly to your exising C libraries, and happily also create native C struct's for the ultimate memory and CPU performance.