Lucee

Last updated
Lucee
Developer Lucee Association Switzerland
First appeared29 January 2015 [1]
Stable release
5.3.8.189 / 25 June 2021;9 months ago (2021-06-25) [2]
Implementation language Java
OS Windows, Linux, Unix, Mac OS X
License LGPL v2.1
Filename extensions .cfc, .cfm, .cfml
Website lucee.org
Influenced by
ColdFusion Markup Language

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 [3] [4] and tag language variants, and provides configurable support for legacy CFML.

Contents

The Lucee language supports multiple development paradigms, including object orientation with inheritance and interfaces, and functional constructs like higher-order functions, closures, map(), and reduce().

Lucee was created by the Lucee Association Switzerland, and was forked from version 4.2 of the Railo Server, which is not being developed further. [5] [6] [1]

Features

Database access

Lucee has built-in support for Microsoft SQL Server, MySQL, Oracle, PostgreSQL, and many other popular relational database engines. Lucee also supports any database for which a JDBC driver is available.

Web services

Lucee has built-in support for calling and consuming data returned from existing web services, along with the ability to easily configure and expose web services to be consumed. Lucee supports three types of web services:

ORM

Lucee has built-in support for the object relational mapping (ORM) framework Hibernate, facilitating Hibernate usage from Lucee code without complex and explicit configuration.

Caching

Lucee has built-in support for multiple caching systems, including Infinispan, Ehcache, and Memcached, and can be extended with additional systems. The cache implementations can be configured within the Lucee server, then used within an application—both explicitly and implicitly—for the caching of database results, function call results, external HTTP request results, serialized session storage, and as a flexible backing store for an in-process RAM-based file-system abstraction.

Virtual filesystems

Lucee supports multiple virtual file systems—built-in abstractions of various local and remote resources—including zip, HTTP, FTP, S3, and RAM. These allow the Lucee server and developer to treat access to an abstracted resource in the same manner as a local file system.

Sample Lucee code

Lucee is derived from the ColdFusion Markup Language (CFML) and therefore has support for both the tag-based and script-based versions of CFML:

Tag example

<cfsetmyVar="Hello World"><cfoutput>#myVar#</cfoutput>

Script example

myVar="Hello World";echo(myVar);

Both the above examples will assign the string "Hello World" as the value of the variable myVar, then output that value to the response buffer, typically for display in a web browser.

Lucee Association Switzerland

The Lucee project is led by the Lucee Association Switzerland, a non-profit Swiss association. The association consists of members who help fund and guide the project. [7]

The project also has enterprise, corporate, and individual supporters; these supporters are not members of the Lucee Association, but help fund and promote the project in exchange for certain benefits. [8]

See also

Related Research Articles

MySQL SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query Language. A relational database organizes data into one or more data tables in which data types may be related to each other; these relations help structure the data. SQL is a language programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

Object–relational mapping in computer science is a programming technique for converting data between type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both free and commercial packages available that perform object–relational mapping, although some programmers opt to construct their own ORM tools.

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 became 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.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

Railo Server, commonly referred to as Railo, 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).

IgniteFusion is a freeware CFML script engine that runs cfm script files. Similar to Perl or PHP script engines the IgniteFusion script engine runs as an executable on the server. Other CFML engines include Adobe ColdFusion, New Atlanta BlueDragon, Railo, Lucee, and Coral Web Builder.

ColdFusion on Wheels

ColdFusion on Wheels is an open-source web application framework designed for applications written in ColdFusion Markup Language.

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.

SmithProject was an Open Source CFML script engine.

The null coalescing operator is a binary operator that is part of the syntax for a basic conditional expression in several programming languages, including C#, PowerShell as of version 7.0.0, Perl as of version 5.10, Swift, and PHP 7.0.0. While its behavior differs between implementations, the null coalescing operator generally returns the result of its left-most operand if it exists and is not null, and otherwise returns the right-most operand. This behavior allows a default value to be defined for cases where a more specific value is not available.

Drizzle (database server)

Drizzle is a discontinued free software/open-source relational database management system (DBMS) that was forked from the now-defunct 6.0 development branch of the MySQL DBMS.

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.

ColdBox Platform

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.

Opa (programming language)

Opa is an open-source programming language for developing scalable web applications.

Adobe ColdFusion Builder

Adobe ColdFusion Builder is the name for Adobe's Eclipse-based development IDE that can be used to build applications for ColdFusion. The product's original codename, "Bolt", is a reference to the original lightning icon for ColdFusion from the Allaire days. In 2010, Adobe released the product and officially renamed it Adobe ColdFusion Builder, often referred to as CFBuilder.

ContentBox Modular CMS

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.

References

  1. 1 2 "Lucee". Adam Cameron's Dev Blog. 29 January 2015. Retrieved July 9, 2021.
  2. "New Stable Release (5.3.8.189)". Lucee.org. 25 June 2021. Retrieved July 9, 2021.
  3. "Adobe ColdFusion 2018 Versus Lucee". Fusion Reactor. November 17, 2020. Retrieved July 9, 2021.
  4. "Is Lucee CFML now better than Adobe ColdFusion?". TeraTech.com. April 30, 2021. Retrieved July 9, 2021.
  5. "Lucee, new fork of Railo, has launched". raymondcamden.com. February 1, 2015. Retrieved July 9, 2021.
  6. "Railo And Lucee: Hunka Hunka Burning Questions". Coder's Revolution. January 30, 2015. Retrieved July 9, 2021.
  7. http://lucee.org/members/become-a-member.html [ dead link ]
  8. http://lucee.org/supporters.html [ dead link ]