A LUA fast, low-latency, low-memory footprint, web JSON-API framework with Test Driven Development helpers and patterns.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin Update command line help for migration generation. Sep 8, 2015
.travis.yml call busted instead of busted_bootstrap for 2.x on travis CI Sep 9, 2015
CHANGELOG.md Bump to 0.1.5. Jun 24, 2015
LICENSE.md Add license Sep 19, 2013


Build Status

GIN JSON-API framework

Gin is an JSON-API framework, currently in its early stage.

It has been designed to allow for fast development, TDD and ease of maintenance.

Gin is helpful when you need an extra-boost in performance and scalability, as it runs embedded in a packaged version of nginx called OpenResty and it's entirely written in Lua. For those not familiar with Lua, don't let that scare you away: Lua is really easy to use, very fast and simple to get started with.

For instance, this is what a simple Gin controller looks like:

local InfoController = {}

function InfoController:whoami()
    return 200, { name = 'gin' }

return InfoController

When called, this returns an HTTP 200 response with body:

	"name": "gin"


Gin already provides:

Get started now! Please refer to the official gin.io website for documentation.


So you want to contribute? That's great! Please follow the guidelines below. It will make it easier to get merged in.

Before implementing a new feature, please submit a ticket to discuss what you intend to do. Your feature might already be in the works, or an alternative implementation might have already been discussed.

Every pull request should have its own topic branch. In this way, every additional adjustments to the original pull request might be done easily, and squashed with git rebase -i. The updated branch will be visible in the same pull request, so there will be no need to open new pull requests when there are changes to be applied.

Do not commit to master in your fork. Provide a clean branch without merge commits.

Ensure to include proper testing. To test gin you simply have to be in the project's root directory and issue:

$ busted

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ○
195 successes / 0 failures / 0 pending : 0.156489 seconds.

There will be no merges without a clean build.