Vintage is a very small web framework based on the original idea of
Merb: Mongrel serving up ERb (Embedded Ruby) templates. The idea has
been expanded and now Vintage helps you serve up ERb, HAML, Textile,
Markdown, and Markaby templates. So, basically templates with no MVC
or heavy infrastructure.
To use Vintage, you have two options. You can use it in standard mode
or application mode. In standard mode, there is no configuration and
Vintage will serve up templates and static files from the current
folder. To get this mode, then simply type vintage start in
$ vintage start
- vintage version 0.0.1
starting server on port 5000
Now navigating to a URL will look in the current folder for the file
or template. For example, going to
http://localhost:5000/my_template will look for
my_template.erb (or whatever template engine you are using)
in the current folder and render it if available. If a static file is
it is served up. If you request
http://localhost:5000/my_folder/my_template, then the
application will look in my_folder for the
Vintage can also be configured to be used as an application server.
To do so, you can either generate an application or hand create a
configuration.yml file (see one from a generated project for
an example). To generate an application, simple run +vintage+ with a
project name as the argument.
This command will generate a number of files. Chief among these is
configuration.yml which tells Vintage how you’d like to run
it. Other files include a sample template and the proper folder
structure for the generated configuration to work properly. This
setup allows you to more easily segment your code for easier
You can also create your own helper methods if you drop a module of
methods (in the Vintage::Helpers module) in the helpers/ folder.
There are a few default helpers included, too.
To give you an idea of how much lighter this is than Rails or Merb,
here are the requests per second according to ab on my box:
Merb: 56 rp/s
Rails: 41 rp/s
Vintage: 534 rp/s
Please enjoy; I’m in the #vintage IRC channel on Freenode or you can
use Trac to submit tickets.
Get it (and submit tickets!) at:
I’m going to create a website and documentation this week.
Ruby in Practice
My free Ruby e-book