Scala JavaScript CSS Java HTML Shell
Switch branches/tags
Clone or download
Latest commit 9ea0d71 Jul 11, 2018
Failed to load latest commit information.
.github Add link to assembla content about example projects Apr 20, 2017
artwork Losslessly compressed Lift .png images. Nov 13, 2012
core Merge pull request #1940 from zhongsigang/master Mar 29, 2018
docs Merge pull request #1846 from lift/early-tutors Mar 29, 2018
persistence Fixed conflict in build.sbt Mar 5, 2018
project Return parser combinators to their previous version Jun 17, 2018
scripts Add draft migration script. May 23, 2016
web Avoid surprise NPEs on param / sitemap methods May 12, 2018
.credentials.enc Add encrypted credentials for publishing snapshots. Nov 21, 2015
.gitignore Add 'X-Requested-With' header to liftVanilla Dec 26, 2015
.java-version Add the java-version file for folks using jenv Jun 2, 2018
.travis.yml Build release-branch-* branches in Travis Jun 17, 2018 Reworking the README for support changes Jul 23, 2017
LICENSE.txt Add a LICENSE file that contains the full text of the Apache 2.0 lice… Oct 19, 2011 Update version numbers in readme Jul 11, 2018 Update support status for 3.3 release Jul 11, 2018
build.sbt Bump version to 3.4.0-SNAPSHOT for forward development Jul 11, 2018 Issue#1919: Asset root path should be configurable Jan 16, 2018
dexy.conf Add dexy config to output stuff into target/docs. Jun 12, 2014
dexy.yaml Dexy runs generated tests for selector examples. Jun 18, 2014
dexyplugin.yaml Add dexy config to output stuff into target/docs. Jun 12, 2014
liftsh Fixing stackoverflow in typechecker while building tests Jul 25, 2017
liftsh.cmd Add a warning comment to the top of liftsh.cmd. Jun 13, 2015
npmsh Added .jshintrc file Dec 30, 2015 Remove the workaround that didn't work well Dec 24, 2016 update build script to build 3.0 from master Jan 18, 2015

The Lift Web Framework

Build Status

Lift is the most powerful, most secure web framework available today. There are Seven Things that distinguish Lift from other web frameworks.

Lift applications are:

  • Secure -- Lift apps are resistant to common vulnerabilities including many of the OWASP Top 10
  • Developer centric -- Lift apps are fast to build, concise and easy to maintain
  • Scalable -- Lift apps are high performance and scale in the real world to handle insane traffic levels
  • Interactive like a desktop app -- Lift's Comet support is unparalled and Lift's ajax support is super-easy and very secure

Because Lift applications are written in Scala, an elegant JVM language, you can still use your favorite Java libraries and deploy to your favorite Servlet Container and app server. Use the code you've already written and deploy to the container you've already configured!

Getting Started

Compatibility note: As of Lift 3.0, you'll need to be running Java 8 to use Lift. For those using Java 6 or Java 7, you'll need to use Lift 2.6 until you can upgrade your Java installation.

You can create a new Lift project using your favorite build system by adding Lift as a dependency. Below we walk through setting up Lift in sbt and Maven.

With sbt (new project)

If you're using a recent version of sbt (e.g. 0.13.16), you can create a new Lift application using our Giter8. To create a new, basic Lift application that has some example code, simply execute:

sbt new lift/basic-app.g8

Or, if you're more on the advanced side of the room, you can also create a new, entirely blank application:

sbt new lift/blank-app.g8

Follow the prompts to create your Lift application.

Running the Server

In order to run the server, navigate to the application folder and run the sbt command. In the SBT prompt, run:


By default, the server should run on http://localhost:8080.

With sbt (Existing project)

If you're using Lift in an existing sbt project you'll need to:

  1. Add the xsbt-web-plugin if you don't already have it or some other way to start a servlet app.
  2. Add the lift dependencies.

To add the xsbt-web-plugin download the most recent version of our web-plugin.sbt file to your project/ folder.

Then, enable the plugin for the container you want to use and in your build.sbt file. Below, we activate the JettyPlugin:


More information on using the plugin can be found on the xsbt-web-plugin project.

After you've done this, you'll want to add Lift to your libraryDependencies in addition to Logback if you don't already have another SLF4J logging library in place. For example:

libraryDependencies ++= {
  val liftVersion = "3.3.0"
    "net.liftweb"       %% "lift-webkit" % liftVersion % "compile",
    "ch.qos.logback" % "logback-classic" % "1.2.3"

Running the Server

In order to run the server, navigate to the application folder and run the sbt command. In the SBT prompt, run:


By default, the server should run on http://localhost:8080.

With Maven

Add Lift to your pom.xml like so:


Where ${scala.version} is 2.11 or 2.12. Individual patch releases of the Scala compiler (e.g. 2.12.2) are binary compatible with everything in their release series, so you only need the first two version parts.

You can learn more about Maven integration on the wiki.

Learning Lift

There are lots of resources out there for learning Lift. Some of our favorites include:

If you've found one that you particularly enjoy, please open a PR to update this README!

Issues & Pull Requests

Per our contributing guidelines, Issues on the Lift GitHub project are intended to describe actionable, already-discussed items. Committers on the project may open issues for themselves at any time, but non-committers should visit the Lift mailing list and start a discussion for any issue that they wish to open.

We will accept issues and pull requests into the Lift codebase if the pull requests meet the following criteria:

  • The request is for a [supported version of Lift][supfile]
  • The request adheres to our contributing guidelines, including having been discussed on the Mailing List if its from a non-committer.

Project Organization

The Lift Framework is divided into several components that are published independently. This organization enables you to use just the elements of Lift necessary for your project and no more.

This Repository

This repository, framework, contains the following components:

  • core: Core elements used by Lift projects. If you wish to reuse some of Lift's helpers and constructs, such as Box, this component may be all you need. However, a web application will most likely require one or more of Lift's other components.
  • web: This component includes all of Lift's core HTTP and web handling. Including lift-webkit in your build process should be sufficient for basic applications and will include lift-core as a transitive dependency.
  • persistence: This component includes Mapper and Record, Lift's two ORMs. While you needn't use either and can use the ORM of your choice, Mapper and Record integrate nicely with Lift's idioms. Mapper is an ORM for relational databases, while Record is a broader ORM with support for both SQL databases and NoSQL datastores.

Other Repostories

There are a variety of other repositories available on the Lift GitHub page. While many are concerned with building Lift or are build program archetypes, there are two you will probably encounter fairly frequently as a Lift user:


The modules organization contains some of the many add-on modules that are part of the Lift project. If you don't find a module you need here, consider looking for it on the Lift modules directory or creating a module and sharing it with the community.


The examples repository contains the source code for several example Lift applications, including

Building Lift

If you simply want to use Lift in your project, add Lift as a dependency to your build system or download the JAR files directly.

If you wish to build Lift from source, check out this repository and use the included liftsh script to build some or all of the components you want.

git clone
cd framework
./liftsh +update +publish

There is additional documentation on the wiki.

Additional Resources


The main Lift website is The site contains information on the latest Lift releases, a getting started guide, links to several Lift online books, and additional information.

Mailing List

The Lift Google Group is the official place for support and is an active, friendly community to boot! It can be found at!forum/liftweb.


The Lift wiki is hosted on Assembla and can be found at Anyone is welcome to contribute to the wiki; you must create an account and watch the Lift project in order to create or edit wiki pages.


The ScalaDocs for each release of Lift, in additional to the actual JARs, are available on the site. You can access the source code–based documentation for releases via the site's homepage or by navigating directly to the URL for the specific release. For instance, the Lift 3.2 release can be accessed at


Lift is open source software released under the Apache 2.0 license.

Continuous Integration

SNAPSHOTs are built by Travis CI