HOME

TheInfoList



OR:

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
proprietary {{Short pages monitor