lulu

Crates.iolulu
lib.rslulu
version0.0.721
created_at2025-10-13 22:23:12.703307+00
updated_at2025-12-28 15:42:00.11617+00
descriptionA mini lua runtime
homepage
repositoryhttps://github.com/kevinj045/lulu
max_upload_size
id1881240
size1,038,255
kevin (kevinJ045)

documentation

README

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:

lulu run single.lua

You can also run a project with a main.lua and a lulu.conf.lua:

lulu run main.lua

Bundling

Lulu can bundle your project into a single .lulib file:

lulu bundle main.lua /path/to/main.lulib

Building an executable

You can build a standalone executable from your project. The build process is defined in your lulu.conf.lua.

lulu build /path/to/project
# or
lulu build # means lulu build .

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:

lulu resolve .

You can also resolve a single dependency:

lulu resolve github:user/repo

You can manage the cache with the cache command:

# List all cached packages
lulu cache list

# Clear the entire cache
lulu cache clear

# Remove a specific package from the cache
lulu cache remove <package_url>

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
Commit count: 0

cargo fmt