Railo Server, commonly referred to as Railo ( ), is
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
software which implements the general-purpose
CFML
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the Java virtual machine (JVM), the .NET framework, and Google App Engine. Several commercial and free and open-source software imp ...
server-side scripting language
In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
, often used to create
dynamic websites,
web applications
A web application (or web app) is application software that is created with web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to dynamically build a response to the request, ...
and
intranet
An intranet is a computer network for sharing information, easier communication, collaboration tools, operational systems, and other computing services within an organization, usually to the exclusion of access by outsiders. The term is used in ...
systems. CFML is a
dynamic language supporting multiple
programming paradigms
A programming paradigm is a relatively high-level way to conceptualize and structure the implementation of a computer program. A programming language can be classified as supporting one or more paradigms.
Paradigms are separated along and descri ...
and runs on the
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
(JVM).
Railo was created by the
Swiss
Swiss most commonly refers to:
* the adjectival form of Switzerland
* Swiss people
Swiss may also refer to: Places
* Swiss, Missouri
* Swiss, North Carolina
* Swiss, West Virginia
* Swiss, Wisconsin
Other uses
* Swiss Café, an old café located ...
company Railo Technologies GmbH, intended as a high performance alternative to
Adobe ColdFusion
Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. (The programming language used with that platform is also commonly called ColdFusion, though is more accurately known as C ...
. In 2008, Railo switched to an open source community-driven model, and became a
JBoss
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on mult ...
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.
Naming
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.
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.
History
Railo began in 2002 as a student project by Michael Offner and Gert Franz to compile CFML code into
PHP
PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
, 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
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
platform instead.
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
Edinburgh is the capital city of Scotland and one of its 32 Council areas of Scotland, council areas. The city is located in southeast Scotland and is bounded to the north by the Firth of Forth and to the south by the Pentland Hills. Edinburgh ...
, when Railo Technologies used the Day 2 keynote to announce a partnership with
JBoss
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on mult ...
and a switch to open source.
In May 2012, at the cf. Objective conference, the foundation of "The Railo Company Ltd" was announced, a
Private Limited Company
A private limited company is any type of business entity in Privately held company, "private" ownership used in many jurisdictions, in contrast to a Public company, publicly listed company, with some differences from country to country. Example ...
, comprising the Swiss company Railo Technologies GmbH in conjunction with five other companies who operated in the CFML industry.
Lucee Fork
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.
On 19 July 2016, The Railo Company was dissolved.
Release history
Platforms and license
Railo runs on the
JVM
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descri ...
as a
servlet
A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applicat ...
, and will work with any
servlet container
A web container (also known as a servlet container;
and compare "webcontainer"
) 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 pa ...
(e.g.
Apache Tomcat
Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also ...
,
Eclipse Jetty) or
application server
An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.
An application ser ...
(e.g.
JBoss AS,
GlassFish
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The support ...
).
It is possible to connect a
web server
A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, co ...
(e.g.
Apache
The Apache ( ) are several Southern Athabaskan language-speaking peoples of the Southwestern United States, Southwest, the Southern Plains and Northern Mexico. They are linguistically related to the Navajo. They migrated from the Athabascan ho ...
,
IIS,
nginx
(pronounced "engine x" , stylized as NGINX or nginx) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Russian developer Igor Sysoev and publicly released in 20 ...
,
Cherokee
The Cherokee (; , or ) people are one of the Indigenous peoples of the Southeastern Woodlands of the United States. Prior to the 18th century, they were concentrated in their homelands, in towns along river valleys of what is now southwestern ...
) in front, using connectors such as
mod jk
In computing, the Apache HTTP Server, an open-source HTTP server, comprises a small core for HTTP request/response processing and for Multi-Processing Modules (MPM) which dispatches data processing to threads or processes. Many additional modules ...
,
mod proxy
Mod, MOD or mods may refer to:
Places
* Modesto City–County Airport, Stanislaus County, California, US
Arts, entertainment, and media Music
* Mods (band), a Norwegian rock band
* M.O.D. (Method of Destruction), a band from New York City, US
* ...
, or equivalent, but this is not required by Railo.
Railo has an installer for
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, which bundles
Apache Tomcat
Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also ...
. There is also a pre-configured Railo Express download using
Jetty
A jetty is a man-made structure that protrudes from land out into water. A jetty may serve as a breakwater (structure), breakwater, as a walkway, or both; or, in pairs, as a means of constricting a channel. The term derives from the French la ...
.
From v4.0 onwards, Railo will have a
command line
A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
version, enabling CFML to be used as a general-purpose language, outside of the servlet environment.
Railo since v3.1 is licensed as
LGPL
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
v2.1, with the source code available on
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
Philosophy
A primary aim of Railo was to provide the functionality of
ColdFusion
Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. (The programming language used with that platform is also commonly called ColdFusion, though is more accurately known as CF ...
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.
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.
Usage
Railo is used by a number of companies, notably including:
*
Amtrak California
Amtrak California is a brand name used by the California Department of Transportation (Caltrans) Division of Rail for three state-supported Amtrak regional rail routes in Californiathe ''Capitol Corridor'', the ''Pacific Surfliner'', and the ...
(Californian rail company)
*
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
(consumer electronics and software company)
*
Diamond Bank (A commercial bank in
Nigeria
Nigeria, officially the Federal Republic of Nigeria, is a country in West Africa. It is situated between the Sahel to the north and the Gulf of Guinea in the Atlantic Ocean to the south. It covers an area of . With Demographics of Nigeria, ...
)
*
DistroKid
DistroKid, formerly titled Fandalism, is an American independent Digital music, digital music distribution service, founded in 2012 by entrepreneur Philip Kaplan. DistroKid principally offers musicians and other rights-holders the opportunity to ...
(Music publishing / distribution service, by
Philip J. Kaplan)
*
IDG Germany (publisher of Computer World, GameStar, PCWorld magazines)
* Fandalism (social network for musicians, by
Philip J. Kaplan)
*
NASA
The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
Jet Propulsion Laboratory
The Jet Propulsion Laboratory (JPL) is a Federally funded research and development centers, federally funded research and development center (FFRDC) in La Cañada Flintridge, California, Crescenta Valley, United States. Founded in 1936 by Cali ...
(center for the robotic exploration of space)
*
The List (UK entertainment magazine)
*
RTL Group
RTL Group S.A. ("Radio Télévision Luxembourg") is a Luxembourg-based international media conglomerate, with another corporate office in Cologne, Germany. The company operates 56 television channels and 36 radio stations in Germany, France an ...
(Europe's second largest TV, radio, and production company)
*
STV Player
STV Player is a video on demand service owned by STV Group and available free-of-charge across the UK, online, on mobile and on all major TV platforms, including Sky Glass, Amazon Fire TV, Roku, Apple TV, Android TV, Freeview Play, Frees ...
(Scottish video on-demand service)
*
Swisscom
Swisscom is a major telecommunications provider in Switzerland. Its headquarters are located in Worblaufen near Bern. The Swiss government owns 51% of Swisscom. According to its own published data, Swisscom holds a market share of 56% for mob ...
(A major telecommunications provider in Switzerland)
Features
* Supports
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
programming with
inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offi ...
,
mixin
In object-oriented programming languages, a mixin (or mix-in) is a class that contains methods for use by other classes without having to be the parent class of those other classes. How those other classes gain access to the mixin's methods depe ...
s and
metaclass
In object-oriented programming, a metaclass is a Class (computer science), class whose Instance (computer programming), instances are classes themselves. Unlike ordinary classes, which define the behaviors of objects, metaclasses specify the beha ...
es
*
Dynamic typing
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usu ...
and
duck typing
In computer programming, duck typing is an application of the duck test—"If it walks like a duck and it quacks like a duck, then it must be a duck"—to determine whether an object can be used for a particular purpose. With nominative ...
* Literal notation for
arrays
An array is a systematic arrangement of similar objects, usually in rows and columns.
Things called an array include:
{{TOC right
Music
* In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
and
structs
* Embedding variables in strings (
interpolation
In the mathematics, mathematical field of numerical analysis, interpolation is a type of estimation, a method of constructing (finding) new data points based on the range of a discrete set of known data points.
In engineering and science, one ...
)
*
Named arguments, optional arguments, and
default arguments
* Three levels of object variable scope: This (object public), Variables (object private), Local (function private)
* Multiple global variable scope: Request, Session, Client, Application, Server, Cluster
* Distinct user-provided variable scopes: Form (post), Url (get), Cookie, CGI
*
Automatic garbage collection
In computer science, garbage collection (GC) is a form of automatic memory management. The ''garbage collector'' attempts to reclaim memory that was allocated by the program, but is no longer referenced; such memory is called ''garbage''. Gar ...
, (via JVM)
* Global and local
exception handling
In computing and computer programming, exception handling is the process of responding to the occurrence of ''exceptions'' – anomalous or exceptional conditions requiring special processing – during the execution of a program. In general, an ...
, (via
onError
and
try/catch
)
* Custom dispatch behaviour (through
onMissingMethod
and implicit getters and setters)
* Implicit object conversion (through
_toString
,
_toNumeric
,
_toBoolean
,
_toDate
)
*
Native
Native may refer to:
People
* '' Jus sanguinis'', nationality by blood
* '' Jus soli'', nationality by location of birth
* Indigenous peoples, peoples with a set of specific rights based on their historical ties to a particular territory
** Nat ...
threads
* Support for
Unicode
Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
, multiple
character encodings
Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical values that make up a c ...
, and
i18n
In computing, internationalization and localization ( American) or internationalisation and localisation (British), often abbreviated i18n and l10n respectively, are means of adapting to different languages, regional peculiarities and technical r ...
* Large standard library, covering common web development needs
* Railo Extension Store and Extension Manager for easy installation of additional software and extensions
* Native
plug-in API in
CFML
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the Java virtual machine (JVM), the .NET framework, and Google App Engine. Several commercial and free and open-source software imp ...
or
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
* Native handling for easily creating and consuming
web service
A web service (WS) is either:
* a service offered by an electronic device to another electronic device, communicating with each other via the Internet, or
* a server running on a computer device, listening for requests at a particular port over a n ...
s
* Separate GUI Administrators for individual web contexts, plus a global server administrator
* All admin settings configurable programmatically, or via editing
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
config files
* Native
resources
''Resource'' refers to all the materials available in our environment which are Technology, technologically accessible, Economics, economically feasible and Culture, culturally Sustainability, sustainable and help us to satisfy our needs and want ...
for all built-in filesystem tags and functions.
*
Clustering and Synchronization for both traditional and
cloud server
A virtual private server (VPS) or virtual dedicated server (VDS) is a virtual machine sold as a service by an Internet hosting company.
A virtual private server runs its own copy of an operating system (OS), and customers may have superuser-le ...
s
* Task Manager for scheduling repeated actions, or re-trying failed events
* Native support for
Hibernate ORM
* Large number of image manipulation functions
* Event Gateways for asynchronous code execution
* Native support for a variety of different
caching mechanisms
* Native session management (CFML sessions or J2EE sessions) with
onSessionStart
and
onSessionEnd
triggers.
* Built-in user authentication and roles functionality.
Security
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
The Open Worldwide Application Security Project (formerly Open Web Application Security Project) (OWASP) is an online community that produces freely available articles, methodologies, documentation, tools, and technologies in the fields of Io ...
Enterprise Security API, and the AntiSamy project.
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).
Syntax
Railo implements the
CFML
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the Java virtual machine (JVM), the .NET framework, and Google App Engine. Several commercial and free and open-source software imp ...
language - see the
CFML syntax section for examples as well as
CFScript.
Differences
Differences from other languages
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:
* CFML contains two syntaxes, a tag-based syntax (not XML compliant) and a C-style syntax called cfscript.
* Arrays in CFML are indexed from one, not from zero.
* CFML supports both ordered and named function arguments, or a combination.
* CFML does not have static variables.
Differences from Adobe ColdFusion
Whilst Railo implements CFML, and is generally compatible with Adobe ColdFusion (ACF), the original CFML engine, there are some notable differences between the two:
* Railo is
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
LGPL
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
v2.1 software. ACF is