raudius/luar

Lua interpreter written entirely in PHP

Maintainers

Details

github.com/Raudius/Luar

Source

Issues

Installs: 2 443

Dependents: 0

Suggesters: 0

Security: 0

Stars: 14

Watchers: 2

Forks: 3

Open Issues: 2

pkg:composer/raudius/luar

0.1.4 2023-07-15 21:24 UTC

This package is auto-updated.

Last update: 2025-11-16 02:21:10 UTC


README

Luar is a Lua interpreter written in PHP.

Luar implements a reduced version of Lua and also packages some essential Lua libraries. As such Luar offers forward-compatibility with Lua with some minor caveats:

  • The math/string libraries use PHP number/string handling; much of the edge-case behaviour has not been replicated (e.g. division by zero, integer overflow)
  • Not all core functions and libraries are available, but a method is provided to inject your own
  • Some language constructs are not implemented (e.g. variable attributes, go-to statements)

Installation

composer require raudius/luar

Usage

For more details read the documentation.

$luar = new Luar();
$luar->assign('world', 'Moon');
$luar->assign('hello_world', function ($name='world') {
    return "Hello, $name!";
});

$program = '
    local greeting = hello_world(world)
    print(greeting)
    
    return greeting
';

$greeting = $luar->eval($program);