Tulip is a minimal and simple web framework (a framework for web systems, really) that provides a lot with very little. Using only Lua (currently 5.4) and the PostgreSQL database (currently 13), the framework packs the following features:
The Small is Beautiful (The Developer's Edition) blog post provides some background and context about the vision and goals of this project.
Clone the project and install the required dependencies:
Then you should be able to prepare the environment and install the Lua dependencies by running the init script:
To run tests and benchmarks (be sure to check the configuration section below):
$ llrocks run test/main.lua # if there are benchmarks available: $ llrocks run bench/*.lua
To view code coverage:
$ llrocks cover test/main.lua
Note that because some tests (e.g. the csrf middleware) run the server in a separate process and only the client requests are made from the actual LuaUnit-executed process, test coverage reports lower numbers than what is actually covered.
scripts/init.lua script sets up most of the required configuration, some
environment variables and secrets cannot be set automatically. Here's what the
file managed by
direnv should contain:
TULIP_SENDGRIDKEY: set to a valid Sendgrid API key
TULIP_TEST_FROMEMAIL: set to a valid email address for tests
TULIP_TEST_TOEMAIL: set to a valid email address for tests
The BSD 3-clause license.