Developer(s) | Railo Technologies, Michael Offner, Gert Franz |
---|---|
Initial release | April 2006 |
Stable release | 4.2.2.005 / 18 December 2014 |
Repository | |
Written in | Java |
Operating system | Windows, Linux, Unix, macOS |
Available in | English, German |
Type | Application server |
License | LGPL v2.1 |
Website | github |
Railo Server, commonly referred to as Railo ( /ˈraɪloʊ/ RY-loh), is open source software which implements the general-purpose CFML server-side scripting language, often used to create dynamic websites, web applications and intranet systems. CFML is a dynamic language supporting multiple programming paradigms and runs on the Java virtual machine (JVM).
Railo was created by the Swiss company Railo Technologies GmbH, intended as a high performance alternative to Adobe ColdFusion. In 2008, Railo switched to an open source community-driven model, and became a JBoss project. The Railo Open Source project is led by Railo Technologies, with development work funded by consulting and support contracts, but anyone may contribute code for consideration.
Railo was named after an alien dog in Star Trek: Enterprise. The dog is actually named Rhylo, but written phonetically in German it is Railo. [1] Thus, Railo can be pronounced either as rhy-lo or as rai-lo - both are acceptable.
Railo major releases have a codename of notable and loyal dogs from history.
Railo began in 2002 as a student project by Michael Offner and Gert Franz to compile CFML code into PHP, a choice made due to the ubiquity of PHP, however it was found that this did not give the desired performance and stability, and the decision was made to switch to the Java platform instead. [1]
The project was successful enough that it was decided to continue to develop into a full product. Several alpha and beta releases were made before the official 1.0 release in April 2006. Railo continued to be developed but was relatively unknown to many CFML developers, until June 2008 at the Scotch on the Rocks conference in Edinburgh, when Railo Technologies used the Day 2 keynote to announce a partnership with JBoss and a switch to open source. [2]
In May 2012, at the cf. Objective conference, the foundation of "The Railo Company Ltd" was announced, a Private Limited Company, comprising the Swiss company Railo Technologies GmbH in conjunction with five other companies who operated in the CFML industry. [3]
On 29 January 2015, the Lucee project, a fork of the Railo 4.2 codebase, was announced by the original developer of Railo, who stated that he would not be working further on Railo. The other developers have confirmed they will also be focusing solely on Lucee, and - although no official statement has been made by The Railo Company - the community consensus is that further development on the Railo project is unlikely. [4] [5]
On 19 July 2016, The Railo Company was dissolved. [6]
Major version (Codename) | Minor version | Release date | Notes |
---|---|---|---|
0 | Alpha 1 | 2004-04-10 | The first official release of the Railo CFML engine. [7] |
Alpha 2 | 2004-05-18 | ||
Alpha 3 | 2004-08-03 | ||
Alpha 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | The first beta release of Railo. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | The first release candidate of Railo was presented to the German CFUG in Munich. [7] | |
1.0 | 1.0.0.000 | 2006-04 | |
2.0 | 2.0.0.000 | 2007-09-10 | |
2.0.1.000 | |||
2.0.2.000 | |||
3.0 | 3.0.0.000 | 2008-09-09 | |
3.0.1.000 | |||
3.0.2.000 | |||
3.0.3.000 | |||
3.1 (Barry) | 3.1.0.000 | 2009-08-12 | First Open Source release of Railo. [8] |
3.1.1.000 | 2009-08-11 | ||
3.1.2.000 | 2010-11-26 | ||
3.2 | 3.2.1.000 | 2011-12-24 | |
3.2.2.000 | 2011-03-18 | ||
3.2.3.000 | 2011-06-10 | ||
3.3 (Hachiko) | 3.3.1.000 | 2011-11-03 | Added built-in support for ORM and many other features. [9] |
3.3.4.003 | 2012-06-25 | ||
4.0 (Apollo) | 4.0.0.013 | 2012-07-02 | |
4.0.5.004 | 2013-07-09 | ||
4.1 (Endal) | 4.1.2.005 | 2013-12-11 | . |
4.2 (Togo) | 4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 2014-12-18 | Current stable release of Railo |
Railo runs on the JVM as a servlet, and will work with any servlet container (e.g. Apache Tomcat, Eclipse Jetty) or application server (e.g. JBoss AS, GlassFish). It is possible to connect a web server (e.g. Apache, IIS, nginx, Cherokee) in front, using connectors such as mod jk, mod proxy, or equivalent, but this is not required by Railo.
Railo has an installer for Linux, macOS, and Windows, which bundles Apache Tomcat. There is also a pre-configured Railo Express download using Jetty.
From v4.0 onwards, Railo will have a command line version, enabling CFML to be used as a general-purpose language, outside of the servlet environment. [10]
Railo since v3.1 is licensed as LGPL v2.1, [11] with the source code available on GitHub [12]
A primary aim of Railo was to provide the functionality of ColdFusion using less resources and giving better performance, and the Railo Technologies team continue to "treat slowness as a bug" as a core development philosophy. Many performance tests have shown Railo to perform faster than other CFML engines. [13]
In addition to this, Railo attempts to resolve many inconsistencies found in traditional CFML. These are either forced changes in behaviour, or configurable options in the Railo Administrator.
The Railo Technologies team have always been open to feedback and active at CFML community events, and are keen to remind people that Railo is a community project.
Railo Technologies also creates strong technology partnerships with CFML software companies, including Blue River Interactive Group (developers of Mura CMS), CONTENS Software GmbH [14] (developers of CONTENS CMS), and Intergral GmbH [15] (developers of FusionReactor and FusionDebug), to help ensure their software works well with Railo. In addition, Railo Technologies offer formal "Partner Programs" for Solutions (development), Hosting, and Training. [16]
![]() | This section may require cleanup to meet Wikipedia's quality standards. The specific problem is: References.(July 2023) |
The Railo Application Server currently averages 7,000 downloads (and growing) per month. [17]
Railo is used by a number of companies, notably including:
onError
and try/catch
)onMissingMethod
and implicit getters and setters)_toString
, _toNumeric
, _toBoolean
, _toDate
) [28] onSessionStart
and onSessionEnd
triggers.CFML has built-in functionality for preventing code injection, via the cfqueryparam
tag, and functions such as HtmlEditFormat
, XmlFormat
, JsStringFormat
. There are also third-party CFML implementations of the OWASP Enterprise Security API, [36] and the AntiSamy project. [37]
One of the key architecture decisions with Railo was to follow the JEE servlet model, with support for multiple independent web contexts on a single server. This is a key security factor, as it prevents unrelated applications from interfering with each other, as may happen on a shared ColdFusion server (which only has a single web context).
Railo implements the CFML language - see the CFML syntax section for examples as well as CFScript.
CFML has a tag-based syntax which is visually different from most other languages, though aside from this it is similar to other dynamic languages, with the following exceptions:
Whilst Railo implements CFML, and is generally compatible with Adobe ColdFusion (ACF), the original CFML engine, there are some notable differences between the two:
Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, that can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.
Jakarta Server Pages is a collection of technologies that helps software developers create dynamically generated web pages based on HTML, XML, SOAP, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP and ASP, but uses the Java programming language.
An application server is a server that hosts applications or software that delivers a business application through a communication protocol.
A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.
Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database. By version 2 (1996) it had become a full platform that included an IDE in addition to a full scripting language.
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine. Multiple commercial and open source implementations of CFML engines are available, including Adobe ColdFusion, Lucee, New Atlanta BlueDragon, Railo, and Open BlueDragon as well as other CFML server engines.
BlueDragon is a ColdFusion Markup Language (CFML) engine comparable to Adobe Systems's ColdFusion. It is licensed and distributed by New Atlanta from TagServlet Ltd based in Scotland. BlueDragon is also distributed and supported by BEA Systems on their Oracle WebLogic Server server platform.
Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.
Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.
Allaire Corporation was a computer software company founded by Jeremy and JJ Allaire in Minnesota, later headquartered in Cambridge, then Newton, Massachusetts. It commenced operations in May 1995, had its initial public offering on NASDAQ in January 1999, and was acquired by rival Macromedia in early 2001.
CFScript is an extension of CFML on the ColdFusion platform. CFScript resembles JavaScript. Some ColdFusion developers prefer it since it has less visual and typographical overhead than ordinary CFML.
Morfik Technology Pty Ltd. is an Australian software company that was acquired by Altium in 2010.
FusionDebug an interactive step debugger for CFML, compatible with Adobe ColdFusion, Railo and Lucee. It enables developers to step through code line-by-line, step into, over or out of code to better understand how code is running.
Play Framework is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM bytecode, e.g. Java. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.
The JBoss Enterprise Application Platform is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services developed and maintained by Red Hat. The JBoss Enterprise Application Platform is part of Red Hat's Enterprise Middleware portfolio of software. Because it is Java-based, the JBoss application server operates across platforms; it is usable on any operating system that supports Java. JBoss Enterprise Application Platform was originally called JBoss and was developed by the eponymous company JBoss, acquired by Red Hat in 2006.
ColdBox is a free, open-source, conventions-based, modular web application framework intended for building enterprise applications with ColdFusion (CFML) using a Hierarchical MVC approach.
Lucee is an open source implementation of a lightweight dynamically-typed scripting language for the Java virtual machine (JVM). The language is used for rapid development of web applications that compile directly to Java bytecode, and is compatible with contemporary CFML script and tag language variants, and provides configurable support for legacy CFML.
ContentBox Modular CMS is an open-source content management system for CFML, created by Ortus Solutions, Corp. ContentBox has been designed as a modular HMVC software based on Hibernate ORM and the ColdBox Platform.