Lulu
A simple Lua runtime that also helps with bundling Lua code, resolving Lua requirements, and building a final executable with libraries.
Features
- Lua Runtime: Execute Lua scripts.
- Code Bundling: Bundle multiple Lua files into a single file.
- Dependency Resolution: Resolve Lua module requirements.
- Executable Builder: Create standalone executables from your Lua projects.
Usage
Running Lua files
You can run a single Lua file:
You can also run a project with a main.lua and a lulu.conf.lua:
Bundling
Lulu can bundle your project into a single .lulib file:
Building an executable
You can build a standalone executable from your project. The build process is defined in your lulu.conf.lua.
# or
Dependency Management
Lulu can resolve and cache dependencies from URLs or git repositories.
To resolve all dependencies for a project, run resolve in the project directory:
You can also resolve a single dependency:
You can manage the cache with the cache command:
# List all cached packages
# Clear the entire cache
# Remove a specific package from the cache
TODO
- Runtime based on luajut
- A few simple APIs
- Lua bytecode buffer
- Lua module resolver from buffer
- Bundler into ".lulib" or executable
- Current path resolver
- Downloading lulib from paths
- Downloading lulib from github
- Building lua projects
- Building github repos
- Caches
- Macros
- Builtin Macros (like
import!,test!,cfg!) - Export Macros (through
lulu.conf.lua) - Basic Testing
- Packager for Windows, Linux, and macOS
- Testing framework integration
- Additional features for FFI
- LuaRocks integration