AsyncLupa integrates with the well known Lupa library, providing an asynchronous wrapper allowing async function / method calls right from Lua.
pip install AsyncLupa
If you want the latest version that has not yet been released
pip install git+https://github.com/SoulSen/AsyncLupa
AsyncLupa support all Lupa's methods that execute Lua code in any way.
It includes AsyncLupa.execute
, AsyncLupa.eval
, and AsyncLupa.compile
, it also supports all the other methods also.
An example is shown below
from asynclupa import AsyncLuaRuntime
import asyncio
async def hello():
return 1
async def main():
async_lua = AsyncLuaRuntime()
async_lua.globals()['hello'] = hello
ret = await async_lua.eval('return python.coroutine(hello())')
print(ret) # Outputs 1
asyncio.run(eval_lua(lua_code))