mlua 0.12.2

High level bindings to Lua 5.5/5.4/5.3/5.2/5.1 (including LuaJIT) and Luau with async/await features and support of writing native Lua modules in Rust.
Documentation
#[derive(mlua::UserData)]
struct Foo {
    x: u32,
}

#[mlua::userdata_impl]
impl<T> Foo<T> {
    #[lua(infallible)]
    fn get(&self) -> u32 {
        self.x
    }
}

#[mlua::userdata_impl]
impl Foo {
    fn generic<T>(&self, value: T) -> mlua::Result<T> {
        Ok(value)
    }
}

fn main() {}