Lift is a
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
web framework
A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build a ...
that is designed for the
Scala programming language. It was originally created b
David Pollakwho was dissatisfied with certain aspects of the
Ruby on Rails
Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pa ...
framework. Lift was launched as an
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 ...
project on 26 February 2007 under the
Apache License 2.0. A commercially popular web platform often cited as being developed using Lift is
Foursquare.
Design goals and overview
Lift is an expressive framework for writing web applications. It draws upon concepts from peer frameworks such as
Grails,
Ruby on Rails
Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pa ...
,
Seaside,
Wicket
In the sport of cricket, the term wicket has several meanings:
* It is either of the two sets of three Stump (cricket), stumps and two Bail (cricket), bails at each end of the Cricket pitch, pitch. The Fielding (cricket), fielding team's playe ...
and
Django. It favors
convention over configuration in the style of Ruby on Rails, although it does not prescribe the
model–view–controller
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:
* the model, the internal representat ...
(MVC)
architectural pattern
Software architecture pattern is a reusable, proven solution to a specific, recurring problem focused on architectural design challenges, which can be applied within various architectural styles.
Examples
Some examples of architectural patte ...
. Rather, Lift is chiefly modeled upon the so-called "View First" (designer friendly) approach to web page development inspired by the Wicket framework. Lift is also designed to be a high-performance, scalable web framework by leveraging Scala actors to support more concurrent requests than is possible with a thread-per-request server.
As
Scala program code executes within 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), any existing
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 ...
library and
web 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 ...
can be used in running Lift applications. Lift web applications are thus packaged as
WAR files and deployed on any
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 ...
2.4 engine (for example,
Tomcat 5.5.xx,
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 ...
6.0, etc.). Lift programmers may use the standard Scala/Java development toolchain including
IDEs such as
Eclipse
An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
,
NetBeans
NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
and
IDEA
In philosophy and in common usage, an idea (from the Greek word: ἰδέα (idea), meaning 'a form, or a pattern') is the results of thought. Also in philosophy, ideas can also be mental representational images of some object. Many philosophe ...
. Dynamic web content is authored via templates using standard
HTML5
HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
or
XHTML
Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated.
While HTML, pr ...
editors. Lift applications also benefit from native support for advanced web development techniques such as
Comet
A comet is an icy, small Solar System body that warms and begins to release gases when passing close to the Sun, a process called outgassing. This produces an extended, gravitationally unbound atmosphere or Coma (cometary), coma surrounding ...
and
Ajax
Ajax may refer to:
Greek mythology and tragedy
* Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea
* Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris
* Ajax (play), ''Ajax'' (play), by the an ...
.
The main characteristics of Lift applications are:
*Resistant to common vulnerabilities including many 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 ...
.
*Fast to build, concise and easy to maintain.
*High performance and scale in the real world to handle big traffic levels.
*Interactive like a desktop application.
History
The stable version 1.0 of Lift was released on 26 February 2009 (two years after initiation of the project). Lift 2.0 was released in June 2010. David Pollak, the original creator of Lift, discussed the release of Lift 2.0 on the popular
FLOSS weekly
Leo Laporte (; born November 29, 1956) is the former host of '' The Tech Guy'' weekly radio show and founder of TWiT.tv, an Internet podcast network focusing on technology. He is also a former TechTV technology host (1998–2008) and a technology ...
podcast.
Lift reached five years of continuous development on 26 February 2012.
References
Further reading
*
*
*
*
*
External links
*
*
Asta4D: Lift inspired Java port
{{DEFAULTSORT:Lift (Web Framework)
Web frameworks
Scala (programming language)
Cross-platform software
Virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
Free software programmed in Scala
Software using the Apache license