Expand description
§High-level bindings to Lua
The mlua crate provides safe high-level bindings to the Lua programming language.
§The Lua object
The main type exported by this library is the Lua struct. In addition to methods for
executing Lua chunks or evaluating Lua expressions, it provides methods for creating Lua
values and accessing the table of globals.
§Converting data
The ToLua and FromLua traits allow conversion from Rust types to Lua values and vice
versa. They are implemented for many data structures found in Rust’s standard library.
For more general conversions, the ToLuaMulti and FromLuaMulti traits allow converting
between Rust types and any number of Lua values.
Most code in mlua is generic over implementors of those traits, so in most places the normal
Rust data structures are accepted without having to write any boilerplate.
§Custom Userdata
The UserData trait can be implemented by user-defined types to make them available to Lua.
Methods and operators to be used from Lua can be added using the UserDataMethods API.
Fields are supported using the UserDataFields API.
§Serde support
The LuaSerdeExt trait implemented for Lua allows conversion from Rust types to Lua values
and vice versa using serde. Any user defined data type that implements serde::Serialize or
serde::Deserialize can be converted.
For convenience, additional functionality to handle NULL values and arrays is provided.
The Value enum implements serde::Serialize trait to support serializing Lua values
(including UserData) into Rust values.
Requires feature = "serialize".
§Async/await support
The create_async_function allows creating non-blocking functions that returns Future.
Lua code with async capabilities can be executed by call_async family of functions or polling
AsyncThread using any runtime (eg. Tokio).
Requires feature = "async".
§Send requirement
By default mlua is !Send. This can be changed by enabling feature = "send" that adds Send requirement
to Functions and UserData.
Re-exports§
pub use crate::value::Nil;
Modules§
- prelude
- Re-exports most types with an extra
Lua*prefix to prevent name clashes. - serde
serialize - (De)Serialization support using serde.
Macros§
Structs§
- AnyUser
Data - Handle to an internal Lua userdata for any type that implements
UserData. - Async
Thread - Thread (coroutine) representation as an async
FutureorStream. - Chunk
- Returned from
Lua::loadand is used to finalize loading and executing Lua main chunks. - Compiler
luau - Luau compiler
- Coverage
Info luau - Luau function coverage snapshot.
- Debug
- Contains information about currently executing Lua code.
- Debug
Names - Debug
Source - Debug
Stack - Deserialize
Options serialize - A struct with options to change default deserializer behavior.
- Function
- Handle to an internal Lua function.
- Function
Info - Hook
Triggers - Determines when a hook function will be called by Lua.
- Light
User Data - A “light” userdata value. Equivalent to an unmanaged raw pointer.
- Lua
- Top level Lua struct which represents an instance of Lua VM.
- LuaOptions
- Controls Lua interpreter behavior such as Rust panics handling.
- Multi
Value - Multiple Lua values used for both argument passing and also for multiple return values.
- Registry
Key - An auto generated key into the Lua registry.
- Scope
- Constructed by the
Lua::scopemethod, allows temporarily creating Lua userdata and callbacks that are not required to be Send or ’static. - Serialize
Options serialize - A struct with options to change default serializer behavior.
- StdLib
- Flags describing the set of lua standard libraries to load.
- String
- Handle to an internal Lua string.
- Table
- Handle to an internal Lua table.
- Table
Pairs - An iterator over the pairs of a Lua table.
- Table
Sequence - An iterator over the sequence part of a Lua table.
- Thread
- Handle to an internal Lua thread (or coroutine).
- User
Data Metatable - Handle to a
UserDatametatable. - Variadic
- Wraps a variable number of
Ts. - lua_
State - A raw Lua state associated with a thread.
Enums§
- Chunk
Mode - Represents chunk mode (text or binary).
- Debug
Event - Represents a specific event that triggered the hook.
- Error
- Error type returned by
mluamethods. - GCMode
- Mode of the Lua garbage collector (GC).
- Meta
Method - Kinds of metamethods that can be overridden.
- Thread
Status - Status of a Lua thread (or coroutine).
- Value
- A dynamically typed Lua value. The
String,Table,Function,Thread, andUserDatavariants contain handle types into the internal Lua state. It is a logic error to mix handle types between separateLuainstances, and doing so will result in a panic. - VmState
luau - Type to set next Luau VM action after executing interrupt function.
Traits§
- AsChunk
- Trait for types loadable by Lua and convertible to a
Chunk - External
Error - External
Result - FromLua
- Trait for types convertible from
Value. - From
LuaMulti - Trait for types that can be created from an arbitrary number of Lua values.
- LuaSerde
Ext serialize - Trait for serializing/deserializing Lua values using Serde.
- Table
Ext - An extension trait for
Tables that provides a variety of convenient functionality. - ToLua
- Trait for types convertible to
Value. - ToLua
Multi - Trait for types convertible to any number of Lua values.
- User
Data - Trait for custom userdata types.
- User
Data Fields - Field registry for
UserDataimplementors. - User
Data Methods - Method registry for
UserDataimplementors.
Type Aliases§
- Integer
- Type of Lua integer numbers.
- Number
- Type of Lua floating point numbers.
- Result
- A specialized
Resulttype used bymlua’s API. - lua_
CFunction - Type for native C functions that can be passed to Lua
Attribute Macros§
- lua_
module module - Registers Lua module entrypoint.