Микрофреймворк Cuba

23 Апр
2012

В этом посте речь пойдёт о минималистическом решении для создания небольших проектов на базе Ruby, а точнее о микрофрейворке Cuba. Всё начилось с того, что я начал интересоваться простейшими решениями для небольших проектов, экспериментов с CoffeeScript и SCSS (SASS).

Если вы большой любитель технологий мира Ruby и хотите создать простое веб-приложение, которое потребляет рекордный минимум системных ресурсов и работает до 4 раз быстрее Rails, то один из лучшим вариантов будет использование молодого микрофреймворка Cuba. На самом деле это небольшая накладка на Rack, которая имеет всего несколько сотен линий кода.

Плюсы:
  1. Связка nginx (frontend) + puma (backend) + cuba (framework) потребляет 35 MB RAM
  2. Rack-based framework, то есть работает с каждым Ruby сервером
  3. Там где Rails показывает производительность в 535 запросов/с, Cuba показывает1975 запросов/с
  4. Архитектура сильно напоминает второй по популярности после Rails веб-фреймворк Sinatra
  5. Из коробки поддерживает рендеринг слоя презентации движком Tilt, то есть можно пользоваться шаблонами erb, erubis, haml, а также coffeescript и scss
  6. Интеграция с библиотеками для тестирования Cutest и Capybara


Простейшее приложение выглядит так:

файл hello_world.rb

require "cuba"

Cuba.use Rack::Session::Cookie

Cuba.define do
on get do
on "hello" do
res.write "Hello world!"
end

on root do
res.redirect "/hello"
end
end
end


и файл config.ru

require "./hello_world"

run Cuba


Работает безупречно (только на Ruby 1.9) и создаёт больше места для манёвров в выборе технологии рендеринг страниц и использования слоя данных.
Пожалуй единственным минусом есть то, что все готовые продукты (например, redis.io), созданные на базе Cuba рабоют с NoSQL базами, а точнее с Redis. Но авторы уже трудятся над тесной интеграцией с Sequel ORM.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх