rlua-async 0.5.0

Async support for rlua, via coroutines
Documentation
use rlua::Lua;
use rlua_async::{ChunkExt, ContextExt};
use futures::executor::block_on;

async fn say(n: u32) {
    println!("number: {}", n);
}

fn main() -> rlua::Result<()> {
    let lua = Lua::new();
    lua.context(|ctx| {
        let globals = ctx.globals();
        let map_table = ctx.create_table()?;
        map_table.set(
            "say",
            ctx.create_async_function(|_ctx, param: u32| async move {
                say(param).await;
                Ok(())
            })?,
        )?;
        globals.set("foo", map_table)
    })?;
    lua.context(|ctx| {
        let chunk = ctx.load("foo.say(42)");
        block_on(chunk.exec_async(ctx))
    })?;
    Ok(())
}