Skip to content
vic

leafo/lapis

A web framework for Lua and OpenResty written in MoonScript

leafo/lapis.json
{
"createdAt": "2012-10-03T16:13:02Z",
"defaultBranch": "master",
"description": "A web framework for Lua and OpenResty written in MoonScript",
"fullName": "leafo/lapis",
"homepage": "http://leafo.net/lapis/",
"language": "MoonScript",
"name": "lapis",
"pushedAt": "2025-11-25T22:25:46Z",
"stargazersCount": 3263,
"topics": [
"lapis",
"lua",
"moonscript",
"openresty"
],
"updatedAt": "2025-11-25T22:25:50Z",
"url": "https://github.com/leafo/lapis"
}

A web framework for Lua/[MoonScript][1] supporting OpenResty or http.server

spec

Lapis is production ready, use it on your next huge project.

Learn more on the homepage: http://leafo.net/lapis/

We just created a Discord for Lapis users and those interested in it to communicate. You can join us here: https://discord.gg/Y75ZXrD

Made a website in Lapis? Tell us

  • lapis-eswidget - A widget base class designed for organizing front-end code bundling
  • lapis-annotate - Autogenerate comments on models with their database schema
  • lapis-console - Interactive MoonScript console for Lapis that runs inside of your browser
  • lapis-exceptions - Exception tracking and reporting
  • lapis-bayes - General purpose Bayes classification for Spam, Fraud, etc.

If you need to run tests outside of our CI. The test suites require [Busted][2] and [MoonScript][1]. There are three separate test suites:

  • busted — test Lua implementations
  • busted spec_postgres — integration tests with PostgreSQL. Requires a running PostgreSQL server
  • busted spec_mysql — integration tests with MySQL. Requires a running MySQL server
  • busted spec_openresty/ — integration tests with OpenResty as a server. Requires installation of OpenResty & Databases
  • busted spec_cqueues/ — integration tests with lua-http and cqueues as a server.

Test suites that require databases need to have the initial database created. A lapis_test database is created on each. You can run each command respectively.

Terminal window
make test_db # postgres test db
make mysql_test_db
  • PostgreSQL: Ensure the postgres user can be logged in with no password.
  • MySQL: Ensure the root user can be logged in with no password.

This repository contains a Dockerfile for running the entire test suite. You can run it with the following commands:

Terminal window
docker build -t lapis-test .
docker run lapis-test

docker build will pull in the files in the current directory, including any changes. To test modified code, build again before running the test suite. It should be a quick operation since dependency installation is cached.

[1] !: http://moonscript.org [2] !: http://olivinelabs.com/busted/