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))