Railo - A look at one fast alternative

I have a CentOS VPS at Viviotech, which is running Bluedragon 7. This is really for my personal web sites and not really a money making proposition! I haven't been overly excited about Bluedragon and started looking around for alternatives. I'm also planning a site that could potentially be high traffic, so performance is also on my mind.

All the current buzz is about ColdFusion8, which is great, as there are some neat new features, but I wanted to keep an open mind. (I'm sure I'll lobby for CF8 heavily at my day job when it is finally released though!). To think that I'm still using CF5! Jeepers.

I saw a post by Sean Corefield about Railo and decided to take a look.

I have never tried Railo 1.1, but they are now up to Release Candidate 3 on version 2.0. This is a public release, so I downloaded it to give it a try. Now, Railo is a Java application that requires a servlet engine to function. Normally you would need Resin, Tomcat or your favorite engine installed, but they have a tidy little package called "Railix (Live version)" that I downloaded. This is actually the only version available for the Release Candidate.

This was one of the easiest installations that I have done. Download the file --> Unzip it --> Execute start.bat (start.sh for Linux). Within 5 seconds you have a real live version of Railo running on port 8888. Everything is preconfigured and simply works. The application server in this version is Jetty, which works just fine for testing purposes. The index.cfm page is simply a series of cfdumps with a link to the administrator. A production installation would take quite a bit more consideration as there are quite a few different methods to install Railo.

My initial testing was to see which Frameworks are compatible. My new favorite Framework is Coldbox and Louis Majano is fully supporting Railo. A quick test has Coldbox loaded with some of the sample apps, so no problem there. My next big question is what about an ORM? I've used both Reactor and Transfer recently and like both. I lean toward Transfer, as it really is a robust product and seems to be the most active right now. Reactor identified some initial bugs with Railo (RC1), but I reported them and Feedback from Gert Franz has been terrific. All of my reported bugs have been corrected as of RC3. I can say that Railo now works with Reactor. Transfer, on the other hand, is a bit of a problem. Mark Mandel has worked a bit of magic into the Java guts of Transfer, which means that the Java classes that he uses are not available in Railo... Bummer! To their credit, the Railo folks are working on the compatibility to allow Transfer to work. I wish them the best as I really want to use Transfer!

Now why am I wanting to use Railo so bad? It really comes down to performance. Railo does not have charting support or cfreport. To be honest, I've always thought ColdFusion's charting to be too simplistic and I always use a third party tool when I need pretty charts. I've rarely used cfreport, but it is priceless when needed. For a project where you can live with the rest of the CFMX7 features, I think Railo is a perfect fit, as it's speed rocks! I've done some basic create-an-object-a-thousand-times-in-a-loop testing, but I'd like to show some more practical speed comparisons as I work on a project.

My dev setup is WinXP running a virtual Win2000 server in VMware with CFMX7 and Railo 2.0 RC3 installed. This allows me to test both engines side-by-side with identical code.

I intend to make various posts as I test and experiment with Railo. This is only the first.


Comments