Skip to content

Releases: mlua-rs/mlua

v0.10.1

09 Nov 21:52
c926327
Compare
Choose a tag to compare

What's Changed

  • Minimal Luau updated to 0.650
  • Added Luau native vector library support (this can change behavior if you use vector function!)
  • Added Lua String::display method
  • Improved pretty-printing for Lua tables (#478)
  • Added Scope::create_any_userdata to create Lua objects from any non-'static Rust types
  • Added AnyUserData::destroy method
  • New userdata-wrappers feature to impl UserData for Rc<T>/Arc<T>/Rc<RefCell<T>>/Arc<Mutex<T>> (similar to v0.9)
  • UserDataRef in send mode now uses shared lock if T: Sync (and exclusive lock otherwise)
  • Added Scope::add_destructor to attach custom destructors
  • Added Lua::try_app_data_ref and Lua::try_app_data_mut methods
  • Added From<Vec> and Into<Vec> support to MultiValue and Variadic types
  • Bug fixes and improvements (#477 #479)

New Contributors

v0.10.0

25 Oct 20:26
4f56575
Compare
Choose a tag to compare

What's Changed

For full changelog see changes in v0.10.0-beta.1, v0.10.0-beta.2 and v0.10.0-rc.1 versions.

Most notable changes since v0.9:

  • No more 'lua lifetime
  • Send + Sync with send feature flag
  • Lua::exec_raw helper to execute low-level Lua C API code
  • LuaNativeFn/LuaNativeFnMut/LuaNativeAsyncFn traits for using in Function::wrap
  • Setting metatable for Lua builtin types (number/string/function/etc)

v0.10.0-rc.1

08 Oct 22:46
0453029
Compare
Choose a tag to compare
v0.10.0-rc.1 Pre-release
Pre-release

What's Changed

  • Lua::scope is back
  • Support yielding from hooks for Lua 5.3+
  • Support setting metatable for Lua builtin types (number/string/function/etc)
  • Added LuaNativeFn/LuaNativeFnMut/LuaNativeAsyncFn traits for using in Function::wrap
  • Added Error::chain method to return iterator over nested errors
  • Added Lua::exec_raw helper to execute low-level Lua C API code
  • Added Either<L, R> enum to combine two types into a single one
  • Added a new Buffer type for Luau
  • Added Value::is_error and Value::as_error helpers
  • Added Value::Other variant to represent unknown Lua types (eg LuaJIT CDATA)
  • Added (optional) anyhow feature to implement IntoLua for anyhow::Error
  • Added IntoLua/FromLua for OsString/OsStr and PathBuf/Path by @psentee in #459

v0.10.0-beta.2

07 Sep 23:23
7c2e9b5
Compare
Choose a tag to compare
v0.10.0-beta.2 Pre-release
Pre-release

Notes

mlua is getting close to v0.10 stable release. Send+Sync works well and hopefully all unsoundness are fixed.

Few (planned) features left:

  • Scope support
  • Getting/setting metatable for primitives
  • Support yielding in hooks for Lua 5.3+ (similar to yielding in Luau interrupt callback)
  • Access to raw Lua state (lock protected but unsafe)
  • Either<A, B> enum that implements FromLua
  • LuaNativeFn trait to wrap Rust functions with non-tuple args (will be used in Function::wrap*)
  • More code coverage
  • (possibly) IntoLua derive macro

What's Changed

  • Updated ThreadStatus enum to include Running and Finished variants.
  • Error::CoroutineInactive renamed to Error::CoroutineUnresumable.
  • IntoLua/IntoLuaMulti now uses impl trait syntax for args (shorten from a.get::<_, T> to a.get::<T>).
  • Removed undocumented Lua::into_static/from_static methods.
  • Futures now require Send bound if send feature is enabled.
  • Dropped lifetime from UserDataMethods and UserDataFields traits.
  • Compiler::compile() now returns Result (Luau).
  • Removed Clone requirement from UserDataFields::add_field().
  • TableExt and AnyUserDataExt traits were combined into ObjectLike trait.
  • Disabled send feature in module mode (since we don't have exclusive access to Lua).
  • Chunk::set_environment() takes Table instead of IntoLua type.
  • Reduced the compile time contribution of next_key_seed and next_value_seed.
  • Reduced the compile time contribution of serde_userdata.
  • Performance improvements.

New Contributors

Full Changelog: v0.10.0-beta.1...v0.10.0-beta.2

v0.10.0-beta.1

31 Jul 13:25
5acf9d7
Compare
Choose a tag to compare
v0.10.0-beta.1 Pre-release
Pre-release

What's Changed

  • Dropped 'lua lifetime (subtypes now store a weak reference to Lua)
  • Removed (experimental) owned types
  • Make Lua types truly Send and Sync (when enabling send feature flag)
  • Removed UserData impl for Rc/Arc types ("any" userdata functions can be used instead)
  • Lua::replace_registry_value takes &mut RegistryKey
  • Lua::scope temporary disabled (will be re-added in the next release)

v0.9.7

05 Apr 12:59
806bd20
Compare
Choose a tag to compare

What's Changed

  • Implemented IntoLua for RegistryKey
  • Mark __idiv metamethod as available for Luau
  • Added Function::deep_clone() method (Luau)
  • Added SerializeOptions::detect_serde_json_arbitrary_precision option
  • Added Lua::create_buffer() method (Luau)
  • Support serializing buffer type as a byte slice (Luau)
  • Perf: Implemented push_into_stack/from_stack for Option<T>
  • Added Lua::create_ser_any_userdata() method

New Contributors

Full Changelog: v0.9.6...v0.9.7

v0.9.6

29 Feb 22:21
270b98a
Compare
Choose a tag to compare

Changes:

  • Added to_pointer function to Function/Table/Thread
  • Implemented IntoLua for &Value
  • Implemented FromLua for RegistryKey
  • Faster (~5%) table array traversal during serialization
  • Some performance improvements for bool/int types

Full Changelog: v0.9.5...v0.9.6

v0.9.5

25 Jan 23:33
75a15ce
Compare
Choose a tag to compare

Changes:

  • Minimal Luau updated to 0.609
  • Luau max stack size increased to 1M (from 100K)
  • Implemented IntoLua for refs to String/Table/Function/AnyUserData/Thread + RegistryKey
  • Implemented IntoLua and FromLua for OwnedThread/OwnedString (unstable feature)
  • Fixed FromLua derive proc macro to cover more cases