| Crates.io | tsuki |
| lib.rs | tsuki |
| version | 0.1.2 |
| created_at | 2025-08-12 08:45:09.287632+00 |
| updated_at | 2025-09-05 10:16:49.212989+00 |
| description | Lua 5.4 ported to Rust |
| homepage | |
| repository | https://github.com/ultimaweapon/tsuki |
| max_upload_size | |
| id | 1791700 |
| size | 1,200,541 |
Tsuki is a port of Lua 5.4 to Rust. This is porting, not binding; which mean all code are Rust and can be using without C compiler1. The initial works was done by C2Rust. Note that this port was done without compatibility with the previous version. You can see a list of the differences here.
[!IMPORTANT] Tsuki does not support multi-threading and no plan to support this at the moment.
All public API of Tsuki should provide 100% safety as long as you don't use unsafe API incorrectly.
Result instead of a long jump.core::any::Any as Lua userdata and can be created without the need to define its metatable.core::any::TypeId instead of a string.@).__close metamethod always nil.__gc metamethod is not supported.__name metavalue must be UTF-8 string.__tostring metamethod must return a UTF-8 string.libc has been completely removed)._VERSION, collectgarbage, dofile, loadfile, xpcall, string.dump and debug library.assert accept only a UTF-8 string.error:
load:
nil or "t".warn is enabled by default without message prefixes and does not support control message.string.format requires UTF-8 string for both format string and format value.LUA_PATH and LUA_PATH_5_4 is ignored.LUA_NOENV in registry is ignored.MIT
On Windows, a proxy to sprintf written in C++ is required at the moment. This proxy will be removed when we replace sprintf calls with Rust equivalent. ↩