Crates.io | rlua-async |
lib.rs | rlua-async |
version | 0.5.0 |
source | src |
created_at | 2020-04-04 05:38:57.628706 |
updated_at | 2022-03-17 15:05:47.673717 |
description | Async support for rlua, via coroutines |
homepage | |
repository | https://github.com/Ekleog/rlua-async |
max_upload_size | |
id | 226147 |
size | 37,557 |
rlua-async
provides a way for asynchronous Rust code using rlua
to
seamlessly interface with Lua code, the only condition being that the Lua code
must not make use of coroutines, as it is the way the async
handling is
proxied through Lua.
async
builtins available to Lua codeThe first thing you need to do is to make async
builtins available to Lua
code. You can do it via eg.
ContextExt::create_async_function
.
Once these builtins are available, they can be called by Lua code. This Lua code
must not use coroutines, as the coroutines are an essential part of how
rlua-async
works internally.
In addition to this, to actually make the code async
, it is also required to
retrieve a Future
when trying to call functions -- otherwise, evaluation is
not going to be asynchronous.
To do that, you can use methods like
FunctionExt::call_async
.
See the Changelog for more details.