Rack Support For Non-Rails Frameworks
The Rack ecosystem is booming and we love engaging with the Rails community. In general, we'd been hearing lots of feedback around support availability for the 'other' Ruby/Rack frameworks out there.
In response to this demand, alongside the votes we received on our user voice forum (thanks for voting!), we're excited to announce that Cloud 66 now supports most of the Ruby frameworks. This allows us to provide additional customer choice to test, build and deploy applications across the full stack using these new frameworks.
Well IsIt Ruby? Rails? Or Rack?
First, it's worth defining these terms:
Ruby is a dynamic, reflective and object- oriented programming language.
Rails it the web application framework written in Ruby.
Rack provides a minimal interface between web servers that support Ruby and Ruby frameworks. By wrapping HTTP requests and responses, it unifies the API for web servers, web frameworks and software into a single method call.
This means Rails is one of the frameworks that supports the Ruby language and Rack includes all the frameworks that support the Ruby language. Clear as mud? : )
So if Rails is just one of the Rack frameworks, why do we refer to "Rails developers" rather than "Rack developers"? The answer is simple; Rails is the most popular Rack framework. 90% of Ruby developers use Rails, which is likely to be the main reason why they refer to themselves as ‘Rails developers’ instead of ‘Rack developers’.
Rack Frameworks: An Overview
I've provided a brief description of each Rack framework below to give you a sense for how they differ. From a usability perspective, we've cross-referenced each against the Github and RubyGems website to determine the number of stars, contributors, and downloads. The information was verified on 8th of March, and therefore is likely to have increased since then.
Sinatra is a great Ruby framework for beginners due to its small interface. A simple micro-framework, which acts as a thin layer on top of Rack, Sinatra sits somewhere in the middle between Cuba (micro framework) and Rails or Hanami (full stack frameworks). Sinatra is one of the frameworks that differs to the typical Rack, but it's worth noting that it still doesn’t cover the full stack.
Github stars: 7 704
Github contributors: 247
RubyGems website downloads: 31 008 718
This is a lightweight framework, which is an extension of Sinatra. Padrino is a perfect option for when your existing Sinatra app starts to become more complex, and perhaps needs the support of a full-stack framework - despite still being ‘tiny and fast. clean and compact. creative and concise.’
Github stars: 2 665
Github contributors: 196
RubyGems website downloads: 442 292
New to Cloud 66, this is a lightweight micro-framework (even lighter than Sinatra), aimed at handling HTTP requests. It’s great to use for small endpoints, as it’s super fast and gives you full control over the entire stack with the flexibility of adding extra gems and complexity as needed.
Github stars: 1 103
Github contributors: 18
RubyGems website downloads: 79 901
New to Cloud 66, this micro-framework for rapid API development complements existing Rack frameworks by providing a simple DSL to easily develop RESTful APIs. Grape has built-in support for common conventions, including multiple formats, subdomain/prefix restriction, content negotiation, versioning and more.
Github stars: 7 079
Github contributors: 242
RubyGems website downloads: 2 032 138
Hanami aka Lotus
Another new framework to be supported by Cloud 66, Hanami is a full stack framework and a fantastic alternative to Rails. It has a simple and explicit architecture with 7 different micro-libraries available to cover the entire stack of your application.
Github stars: 2 591
Github contributors: 75
RubyGems website downloads: 2 439
Also new to Cloud 66, Praxis is a lightweight framework for designing and building APIs. Praxis helps Ruby developers in aspects relating to building services, as it's flexible and componentized. This allows developers to choose which parts they want to use, and which not and pick other technologies to integrate with.
Github stars: 230
Github contributors: 17
RubyGems website downloads: 17 841
Another new addition, Volt is a reactive web framework where your Ruby code runs both on the server and the client (via opal). The DOM automatically updates as the user interacts with the page, intelligently updating only the nodes that need to be changed. Data can easily be stored on the page, in a cookie, or in a database.
Github stars: 3 188
Github contributors: 61
RubyGems website downloads: 101 291
New to Cloud 66, Nancy is a lightweight framework for building HTTP services on .Net and Mono. Nancy is designed to handle
PATCH requests and provides a Domain Specific Language (DSL) for returning a response with just a couple of keystrokes. It stays out of the way and provides a ‘super-duper-happy-path’ to all integrations.
Github stars: 3 821
Github contributors: 239
RubyGems website downloads: 5 751
This is micro-web-framework for testing applications on modern browsers. It can be used inside all Rack-based frameworks. New to Cloud 66, NYNY uses Journey for routing (Rails’ router), which makes its routing logic very powerful and reliable - more so than most micro-frameworks.
Github stars: 261
Github contributors: 8
RubyGems website downloads: 16 755
Ramaze has also been added to Cloud 66, and is a lightweight framework based on MVC architecture. It provides the ultimate range of tools that would help you achieve custom-tailored results. Ramaze philosophy could be express in the mix of KISS and POLS.
Github stars: 320
Github contributors: 49
RubyGems website downloads: 124 144
A lightweight framework that's described as a ‘thin layer on top of Rails”, Trailblazer is now supported by Cloud 66. It's a set of patterns that gently enforces encapsulation, an intuitive code structure and gives you an object-oriented architecture. Trailblazer does not contain callbacks, nested attributes, validations or domain logic.
Github stars: 1 642
Github contributors: 20
RubyGems website downloads: 20 285
Is new to Cloud 66, and is a lightweight framework for the asynchronous (non-blocking) processing of web requests, designed for bare metal performance, Rack API and middleware support. The main advantage of Goliath main is its ability to untangle complicated callback-based code into linear execution.
Github stars: 2 303
Github contributors: 71
RubyGems website downloads: 173 172
- If you're interested in deploying your app on bare- metal with Cloud 66, watch our webinar where we give you a step-by-step overview of Packet.*
We hope you enjoy deploying Cloud 66 stacks with the newly added Rack frameworks. Please, get in touch, and let us know how you get along. We'd love to hear more about your awesome projects.
If you missed Part 1 of this series, you can access 'Cloud 66 for Rails: the why and the how (Part 1)' here to explore the benefits of using Cloud 66 for Rails.