{"id":13801156,"url":"https://github.com/lift/framework","last_synced_at":"2025-05-13T22:05:26.999Z","repository":{"id":1348135,"uuid":"1295197","full_name":"lift/framework","owner":"lift","description":"Lift Framework","archived":false,"fork":false,"pushed_at":"2024-11-21T03:39:28.000Z","size":16482,"stargazers_count":1269,"open_issues_count":135,"forks_count":278,"subscribers_count":103,"default_branch":"main","last_synced_at":"2025-04-29T13:49:25.175Z","etag":null,"topics":["framework","lift","lift-framework","real-time","scala","view-first","web"],"latest_commit_sha":null,"homepage":"http://liftweb.net","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-01-26T13:25:28.000Z","updated_at":"2025-03-25T04:50:13.000Z","dependencies_parsed_at":"2024-11-12T03:23:50.355Z","dependency_job_id":"1429bd24-97f0-44c8-b600-2096b35896cc","html_url":"https://github.com/lift/framework","commit_stats":{"total_commits":3334,"total_committers":122,"mean_commits":"27.327868852459016","dds":0.7918416316736653,"last_synced_commit":"8b4263d6480a2cafcc394b805320e20b45b0e763"},"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lift%2Fframework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lift%2Fframework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lift%2Fframework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lift%2Fframework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lift","download_url":"https://codeload.github.com/lift/framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036817,"owners_count":22003653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","lift","lift-framework","real-time","scala","view-first","web"],"created_at":"2024-08-04T00:01:20.132Z","updated_at":"2025-05-13T22:05:21.985Z","avatar_url":"https://github.com/lift.png","language":"Scala","readme":"# The Lift Web Framework\n\n[![Build Status](https://travis-ci.org/lift/framework.svg?branch=master)](https://travis-ci.org/lift/framework)\n\nLift is the most powerful, most secure web framework available today. There are [Seven Things](http://seventhings.liftweb.net/) that distinguish Lift from other web frameworks.\n\nLift applications are:\n\n- Secure -- Lift apps are resistant to common vulnerabilities including many of the OWASP Top 10\n- Developer centric -- Lift apps are fast to build, concise and easy to maintain\n- Scalable -- Lift apps are high performance and scale in the real world to handle insane traffic levels\n- Interactive like a desktop app -- Lift's Comet support is unparalled and Lift's ajax support is super-easy and very secure\n\nBecause Lift applications are written in [Scala](http://www.scala-lang.org), 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!\n\n## Getting Started\n\n**Compatibility note:**\nAs of Lift 3.0, you'll need to be running Java 8 to use Lift. For those using Java 6 or Java 7,\nyou'll need to use Lift 2.6 until you can upgrade your Java installation.\n\nYou can create a new Lift project using your favorite build system by adding Lift as a dependency.\nBelow we walk through setting up Lift in sbt and Maven.\n\n### With sbt (new project)\n\nIf you're using a recent version of sbt (e.g. 0.13.16), you can create a new Lift application using\nour Giter8. To create a new, basic Lift application that has some example code, simply execute:\n\n```\nsbt new lift/basic-app.g8\n```\n\nOr, if you're more on the advanced side of the room, you can also create a new, entirely blank\napplication:\n\n```\nsbt new lift/blank-app.g8\n```\n\nFollow the prompts to create your Lift application.\n\n#### Running the Server\n\nIn order to run the server, navigate to the application folder and run the `sbt` command. In the SBT prompt, run:\n\n    ~jetty:start\n\nBy default, the server should run on http://localhost:8080.\n\nThe above command will do what you probably want; the application will recompile and restart whenever you change HTML, resources or Scala code.\n\nIf your efforts are primarily dedicated to the frontend, you may find that it's not efficient to recompile and restart the application every time you change CSS or HTML.\n\nIn this case, a good alternative command is\n\n    jetty:quickstart\n\nThe difference between *start* and *quickstart* is that start serves assets from your target directory where the exploded WAR is, and quickstart serves from the src directory where you're editing the files.\n\nNote that there is not a leading tilde *~* on the quickstart command.  This is so that compile is not triggered when resources change.  Your changed resources will be served directly.  Note that in this mode Scala changes must be manually compiled. \n\n### With sbt (Existing project)\n\nIf you're using Lift in an existing sbt project you'll need to:\n\n1. Add the xsbt-web-plugin if you don't already have it or some other way to start a servlet app.\n2. Add the lift dependencies.\n\nTo add the xsbt-web-plugin download the most recent version of our [web-plugin.sbt][wpsbt] file\nto your `project/` folder.\n\nThen, enable the plugin for the container you want to use and in your `build.sbt` file. Below, we\nactivate the JettyPlugin:\n\n```scala\nenablePlugins(JettyPlugin)\n```\n\nMore information on using the plugin can be found on the [xsbt-web-plugin project][wpproj].\n\nAfter you've done this, you'll want to add Lift to your `libraryDependencies` in addition to\nLogback if you don't already have another SLF4J logging library in place. For example:\n\n```scala\nlibraryDependencies ++= {\n  val liftVersion = \"3.3.0\"\n  Seq(\n    \"net.liftweb\"       %% \"lift-webkit\" % liftVersion % \"compile\",\n    \"ch.qos.logback\" % \"logback-classic\" % \"1.2.3\"\n  )\n}\n```\n\n[wpsbt]: https://github.com/lift/basic-app.g8/blob/master/src/main/g8/project/web-plugin.sbt\n[wpproj]: https://github.com/earldouglas/xsbt-web-plugin/\n\n#### Running the Server\n\nThe same run process as above applies to this project configuration.\n\n### With Maven\n\nAdd Lift to your `pom.xml` like so:\n\n    \u003cdependency\u003e\n      \u003cgroupId\u003enet.liftweb\u003c/groupId\u003e\n      \u003cartifactId\u003elift-webkit_${scala.version}\u003c/artifactId\u003e\n      \u003cversion\u003e3.3.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\nWhere `${scala.version}` is `2.11` or `2.12`. Individual patch releases of the Scala compiler\n(e.g. 2.12.2) are binary compatible with everything in their release series, so you only need the\nfirst two version parts.\n\nYou can learn more about Maven integration [on the wiki](http://www.assembla.com/wiki/show/liftweb/Using_Maven).\n\n### Learning Lift\n\nThere are lots of resources out there for learning Lift. Some of our favorites include:\n\n* [The Lift Cookbook](http://cookbook.liftweb.net/)\n* [Simply Lift](http://simply.liftweb.net)\n\nIf you've found one that you particularly enjoy, please open a PR to update this README!\n\n## Issues \u0026 Pull Requests\n\nPer our [contributing guidelines][contribfile], Issues on the Lift GitHub project are intended to\ndescribe actionable, already-discussed items. Committers on the project may open issues for\nthemselves at any time, but non-committers should visit the [Lift mailing\nlist](https://groups.google.com/forum/#!forum/liftweb) and start a discussion\nfor any issue that they wish to open.\n\nWe will accept issues and pull requests into the Lift codebase if the pull requests meet the following criteria:\n\n* The request is for a [supported version of Lift][supfile]\n* The request adheres to our [contributing guidelines][contribfile], including having been discussed\n  on the Mailing List if its from a non-committer.\n\n[supfile]: https://github.com/lift/framework/blob/master/SUPPORT.md\n[contribfile]: https://github.com/lift/framework/blob/master/CONTRIBUTING.md\n[sigfile]: https://github.com/lift/framework/blob/master/contributors.md\n\n## Project Organization\n\nThe 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.\n\n### This Repository\n\nThis repository, `framework`, contains the following components:\n\n* **core:** Core elements used by Lift projects. If you wish to reuse some of Lift's helpers and\nconstructs, such as `Box`, this component may be all you need. However, a web application will most\nlikely require one or more of Lift's other components.\n* **web:** This component includes all of Lift's core HTTP and web handling. Including `lift-webkit`\nin your build process should be sufficient for basic applications and will include `lift-core` as a\ntransitive dependency.\n* **persistence:** This component includes Mapper and Record, Lift's two ORMs. While you needn't use\neither and can use the ORM of your choice, Mapper and Record integrate nicely with Lift's idioms.\nMapper is an ORM for relational databases, while Record is a broader ORM with support for both SQL\ndatabases and NoSQL datastores.\n\n### Other Repostories\n\nThere 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:\n\n#### modules\n\nThe [modules](https://github.com/liftmodules) organization contains some of the many add-on modules\nthat are part of the Lift project. If you don't find a module you need here, consider\nlooking for it on the [Lift modules directory](https://liftweb.net/lift_modules) or\n[creating a module](http://www.assembla.com/spaces/liftweb/wiki/Modules) and sharing it with the\ncommunity.\n\n#### examples\n\nThe [examples](https://github.com/lift/examples) repository contains the source code for several example Lift applications, including [demo.liftweb.com](http://demo.liftweb.net/).\n\n## Building Lift\n\nIf you simply want to use Lift in your project, add Lift as a dependency to your build system or [download the JAR files directly](https://www.liftweb.net/download).\n\nIf 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.\n\n    git clone https://github.com/lift/framework.git\n    cd framework\n    ./liftsh +update +publish\n\nThere is [additional documentation on the wiki](http://www.assembla.com/spaces/liftweb/wiki/Building_Lift).\n\n## Additional Resources\n\n### Homepage\n\nThe main Lift website is [https://liftweb.net](https://liftweb.net). The site contains information on the latest Lift releases, a getting started guide, links to several Lift online books, and additional information.\n\n### Mailing List\n\nThe Lift Google Group is the official place for support and is an active, friendly community to boot! It can be found at [http://groups.google.com/forum/#!forum/liftweb](http://groups.google.com/forum/#!forum/liftweb).\n\n### Wiki\n\nThe Lift wiki is hosted on Assembla and can be found at [http://www.assembla.com/spaces/liftweb/wiki/](http://www.assembla.com/spaces/liftweb/wiki/). 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.\n\n### ScalaDocs\n\nThe ScalaDocs for each release of Lift, in additional to the actual JARs, are available on the Liftweb.net 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 [http://liftweb.net/api/32/api/](http://liftweb.net/api/32/api/).\n\n## License\n\nLift is open source software released under the **Apache 2.0 license**.\n\n## Continuous Integration\n\nSNAPSHOTs are built by [Travis CI](https://travis-ci.org/lift/framework)\n","funding_links":[],"categories":["Table of Contents","Web Frameworks","开发框架"],"sub_categories":["Web Frameworks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flift%2Fframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flift%2Fframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flift%2Fframework/lists"}