Padrino: A Webapp Framework Wrapped Around Sinatra
Hot on the heels of Sinatra 1.0 comes the official release of Padrino (or GitHub repo), a webapp framework that provides an extra layer of functionality on top of Sinatra (like helpers, generators, admin interface, and internationalization). Padrino is Sinatra 1.0 compatible.
Developers Davide D'Agostino, Nathan Esquenazi and Arthur Chiu love Sinatra and its development philosophy, but want to provide a deeper, standardized layer of functionality on top of the typical Sinatra stack. True to form, Padrino extends Sinatra with a wealth of extra features:
- Namespaced route aliases
- Nested routes
- Controllers
- i18n / Internationalization
- Mailer system
- Django-esque admin interface
- Unified logging
- Tag, asset, for, and tag helpers for use in views
- App, model and controller generators
Most of these features can be added to Sinatra already, either manually or by selecting from a wide assortment of independent plugins. Padrino, on the other hand, provides a standard suite of functionality that, hopefully, will continue to be improved as a whole over time. It feels a lot like Ramaze but with the similar functionality wrapped around Sinatra instead.
The Padrino team have done a great job putting together its official Web site and there's a lot of documentation to peruse. They've also put together a guide to contributing to the project if you want to get your hands dirty. There's also a 12 minute screencast:
April 1, 2010 at 5:13 pm
Yet another webapp ruby framework, why?
April 1, 2010 at 5:35 pm
Yea! Check it out. I love it.
April 1, 2010 at 8:51 pm
not a fan. it's not "lightweight". sinatra is lightweight. rails is heavyweight. this is neither. this is some chosen features dumped on top of sinatra. it would be much better as individual modules you could easily add.
April 1, 2010 at 10:04 pm
kenny,
before submit your sentence try it or read (well) about it.
> it would be much better as individual modules you could easily add.
http://www.padrinorb.com/guides/standalone-usage-in-sinatra
Sinatra is lightweight because is a MicroFramework, this seems to be a full web framework, with generators, helpers, admin ... but a little smaller compared with others.
April 1, 2010 at 10:15 pm
Kenny,
Luckily, Padrino allows you to pick individual modules that you could easily add.
http://www.padrinorb.com/guides/standalone-usage-in-sinatra
April 1, 2010 at 11:02 pm
@kenny, I only suggest you to read some of our docs.
Btw there is also a QuickTime version and transcript here:
http://www.padrinorb.com/guides/blog-tutorial
April 1, 2010 at 11:32 pm
Kenny, it's more than a "bunch of features dumped on Sinatra"
It's a very elegant frameworks that, IMHO, has made a lot better decisions than Rails.
You really ought to try something out before you decide not to be a fan.
April 2, 2010 at 12:18 am
Looks great, lots of helpful materials on the official site. I will surely check it out as I enjoy Sinatra, but had always felt it was missing some features out of the box.
(As a person quite new to web development extending Sinatra on my own was a difficult task, not every gem worked, not every thing was decently documented, etc. - having a standard package solves most of this!)
April 2, 2010 at 3:31 am
I have just done a rather big project in Sinatra (course work). By big, I mean there's a lot of code present. There is a huge opportunity for DRYing all this up, and I am looking forward to what Padrino brings to the party.
I would be very interested to see how Padrino compares with Monk and Pancake, feature-wise and philosophically.
April 2, 2010 at 5:03 am
@kenny: you're probably sayin' to yourself that hey i'm gonna go out there & i'm gonna get the world by the tail, wrap it around, pull it down & put it in my pocket...well, i'm here to tell you that you're probably gonna find out, as you go out there, that you're not going to amount to JACK SQUAT!!!
April 2, 2010 at 4:33 pm
I love Sinatra the way it is. I use it for simple web-sites and RESTful interfaces.
For other purposes I use RoR.
Another framework? What for?
April 2, 2010 at 6:47 pm
Because Rails is not the end-all. People said the same thing about rails when it came out. Not all of us are tools that just accept the status quo. If you can't handle change, change professions. There were hundreds of web frameworks that came out before Rails did, and in many respects Rails built on the shoulders of those early pioneers.
I'm probably not going to find a use for this framework, but it's got some great ideas on it, and it's going to work great for a lot of people. Sinatra is a fantastic engine for laying frameworks on top of, and I'm learning a lot of good things from these efforts. We've done something similar for our work, for a development problem which would have not been easy to solve with either base Sinatra or Rails.
April 2, 2010 at 7:43 pm
> Another framework? What for?
freedom of choice. diversity. new ideas that one day might be implemented in your favourite framework as well.
April 3, 2010 at 5:43 pm
Sinatra is great for writing modular rack-mounted applications that can be reused across projects.
For smaller pieces there are Sinatra Extensions or simple module mixins.
Why do you need to create new namespaces and base classes? There are a bunch of Sinatra-based "frameworks", and I don't like any of them. Sinatra is predictably simple, predictably maintained, and all I want is *Sinatra* apps, extensions, and dependency-free modules.
I liked "sinatra_more" better, and it would be nice to grow a sinatra and generic web "facets" lib instead of piling frameworks on top of each other.
That said, I think it's great to try to compete with and/or provide alternatives to Rails. I just think that libraries are better than frameworks (in terms of high cohesion, loose coupling, and having less proprietary API/conventions to work through).
April 3, 2010 at 7:20 pm
Im using padrino from one week and I think its clean and simple API is awesome.
So in reply to Ben:
> Why do you need to create new namespaces and base classes?
Depends, for complex things I think this can be helpful.
> here are a bunch of Sinatra-based "frameworks", and I don't like any of them.
Can you tell us about that? I searched on github for a couple of days and I found some like chicago big_band but any of them seems to be complete like this framework. Any of them has: Bundled I18n ? Orm adapters? Generators? Reloader? Logger? Named routes? Respond To? FULL Helpers? ADMIN INTERFACE ????
> I just think that libraries are better than frameworks
I think this depends on how many applications do you build and manage.
I don't love repeat my self so for each app cut/paste files add remove same code is not beautiful ... almost for me.
Then consider that every "external library" is enginered for itself and not for work togheter with another. The better thing that I see in Padrino IMHO is how it was designed.
April 4, 2010 at 6:54 am
I am one of the Padrino core developers. We have really appreciated all the comments and reactions posted here and elsewhere around the web since the announcement of Padrino! I took some time to address a couple common concerns in our latest blog post: http://www.padrinorb.com/blog/addressing-concerns-about-padrino . I hope this helps clarify a few things and thanks again for checking out Padrino.
April 5, 2010 at 2:29 am
Used padrino for a project since 0.7. Very nice Sinatra extensions. If you prefer to work mostly at the Rack level and with DataMapper as the default instead of ActiveRecord, padrino is a good alternative to Rails.
Admin interface (based on http://github.com/pilu/web-app-theme) out of the box if you want it is a plus.
Support for tasks and other goodies that Sinatra doesn't have.
Recommended. Would like to see a community rising around this and other frameworks. Why not?
April 6, 2010 at 1:44 pm
I'm a fan, but I'd like to see benchmarks on the homepage ...
It's hard for me to reason about a middle of the road product without seeing how it compares to the controls (rack to rails) in terms of performance ...
April 22, 2010 at 8:52 am
Just released major update version 0.9.10 which includes bug fixes, new features and a lot of performance optimizations. We also have application benchmarks now detailed in our latest blog post.
Read more about the latest release here: http://www.padrinorb.com/blog/padrino-0-9-10-released-built-for-speed . Let us know what you guys think!