Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

rlua -- High level bindings between Rust and Lua

rlua is now deprecated in favour of mlua: see below for migration information

rlua is now a thin transitional wrapper around mlua; it is recommended to use mlua directly for new projects and to migrate to it when convenient. mlua was a fork of rlua which has recently seen more development activity and new features.


rlua 0.20 includes some utilities to help transition to mlua, but is otherwise just re-exporting mlua directly.

The main changes are:

  • In mlua, Lua::context() is no longer necessary. The methods previously on Context can now be called directly on the Lua object. rlua 0.20 includes an RluaCompat extension trait which adds a context() method which can be used to avoid having to update code all at once.

  • The ToLua trait has been renamed to IntoLua, and its conversion method to_lua is now into_lua. rlua 0.20 includes ToLua as an alias for IntoLua and an extension ToLuaCompat which adds a to_lua method as a temporary convenience.

A few other changes which should be less disruptive:

  • mlua has different defaults and options for blocking loading C libraries or compiled modules from Lua code or catching Rust panics. Check the Lua::new_with and unsafe variants for the new options.