grip~grip-framework

A microframework for building RESTful web applications, with ease and joy grip web-framework websocket phoenix routing router kemal microframework
0.28.3 Yanked release released

Grip

Grip

Grip is a microframework for building RESTful web applications. It is designed to be modular and easy, with the ability to scale up. It began as a fork of the Kemal framework and has become one of the most interesting frameworks of the Crystal programming language.

Grip offers extensibility, it has integrated middleware called "pipes" which alter the parts of the request/response context and pass it on to the actual endpoint. It has a router which somewhat resembles that of Phoenix framework's router and most of all it is fast, peaking at 285,013 requests/second.

Build Status Gitter

Super Simple ⚡️

require "grip"

class Index < Grip::Controller::Http
  def get(context)
    json(
      context,
      {
        "id" => 1,
      }
    )
  end
end

class Application < Grip::Application
  def initialize
    get "/", Index
  end
end

app = Application.new
app.run

The default port of the application is 3000, you can set it by either compiling it and providing a -p flag or by changing it from the source code.

Start your application!

Installation

Add this to your application's shard.yml:

dependencies:
  grip:
    github: grip-framework/grip

Features

  • Support all REST verbs
  • Websocket support
  • Request/Response context, easy parameter handling
  • Middleware support
  • Built-in JSON support

Documentation

  • For the framework development just use the crystal docs feature and browse through the module.
  • Check out the official documentation available here

Thanks

Thanks to Manas for their awesome work on Frank.

Thanks to Serdar for the awesome work on Kemal.

Thanks to the official gitter chat of the Crystal programming language.

grip:
  github: grip-framework/grip
  version: ~> 0.28.3
License MIT
Crystal 0.34.0

Authors

Dependencies 2

  • jwt
    {'github' => 'crystal-community/jwt'}
  • radix
    {'github' => 'luislavena/radix'}

Development Dependencies 1

  • ameba
    {'github' => 'crystal-ameba/ameba'}

Dependents 0

Similar shards

Last synced .
search fire star recently