RackStep is (yet another) micro ruby framework for microservices and web development.
Main goals are:
- be as simple as possible.
- keep the source code small.
- implement only the necessary; no overcomplication.
- allow easy implementation of microservices.
- use a pure object-oriented approach, avoiding DSLs and configuration files.
Source code of the presentation: github.com/mfdavid/rackstep-presentations
# app.rb
require 'rackstep'
require 'json'
class App < RackStep::App
# Routing all GET requests to "/time" path to the TimeController class.
add_route('GET', 'time', 'TimeController')
end
class TimeController < RackStep::Controller
def process_request
time_hash = {:time => Time.now}
response.body = time_hash.to_json
end
end
# config.ru
require_relative 'app.rb'
run App
The service will be available at /time path and will return the current date and time in json format.
RackStep is developed and tested with Ruby 2.3.1. The only hard dependency is Rack itself, but there are a few recommended gems:
- unicorn: fast rack-compatible server that can be used for production.
- simplecov: a simple way to generate statistics about your unit tests coverage.
Make sure you have ruby 2.3.1 installed (ruby --version). If you don't, we recommend you to use rbenv to install it. RackStep may work with older ruby implementations but we always develop and test with the latest Ruby MRI stable version.
Install the bundle gem if you don't have it already: gem install bundle
To create a new application, you may clone one of the following repositories as a starting point example:
A full app example: github.com/mfdavid/rackstep-app-template
A minimum app example: github.com/mfdavid/rackstep-minimum-app-template
Go into the directory you cloned the project and install the dependancies by running: bundle install
Start the application server using any rack-compatible server. For development I recommend using shotgun or rackup. For production, RackStep full app template example is pre-configured to use unicorn.
In the main folder of the project, execute: rake test
Open coverage/index.html to see the results.
RackStep still in very early stage of development and testing. Right now there is only one website that was built using it: Ninirc.com
RackStep is developed by Marcio Frayze David - [email protected].