leafo/lapis
{ "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
Lapis is production ready, use it on your next huge project.
Learn more on the homepage: http://leafo.net/lapis/
Join Our Community
Section titled “Join Our Community”We just created a Discord for Lapis users and those interested in it to communicate. You can join us here: https://discord.gg/Y75ZXrD
Lapis Powered
Section titled “Lapis Powered”- https://luarocks.org - source
- https://itch.io
- https://streak.club - source
- https://sightreading.training - source
- Ludum Dare game browser - source
- http://lapchan.moe/ - source
Made a website in Lapis? Tell us
Supplemental Libraries
Section titled “Supplemental Libraries”- 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.
Running Tests
Section titled “Running Tests”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 implementationsbusted spec_postgres— integration tests with PostgreSQL. Requires a running PostgreSQL serverbusted spec_mysql— integration tests with MySQL. Requires a running MySQL serverbusted spec_openresty/— integration tests with OpenResty as a server. Requires installation of OpenResty & Databasesbusted 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.
make test_db # postgres test dbmake mysql_test_db- PostgreSQL: Ensure the
postgresuser can be logged in with no password. - MySQL: Ensure the
rootuser can be logged in with no password.
Using the Docker image
Section titled “Using the Docker image”This repository contains a Dockerfile for running the entire test suite. You can run it with the following commands:
docker build -t lapis-test .docker run lapis-testdocker 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/