Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
moonsharp
An interpreter for the Lua language, written entirely in C# for the .NET, Mono, Xamarin and Unity3D platforms, including handy remote debugger facilities.
It is nice small, so Lua even ran on Playstation 3 SPU!
We used to ship lua binaries for the premake build system.
For me, the indexed from 1 rather than 0 is a big turn off.
Roblox has the mlua fork, https://github.com/Roblox/luau
Lua is a very nice piece of technology. Its source code is pretty easy to get into, the documentation is complete.
It has its quirks yes, but if I need to add scripting to a software, I'd consider Lua before considering writing a DSL, simply because you can pretty much embed Lua's source in your C/C++ software as a static library[0].
The stack-based approach makes it so easy to interact with C/C++, and I've been looking at the Rust bindings[1] recently out of curiosity, looks promising.
[0] - https://github.com/lubgr/lua-cmake
[1] - https://github.com/amethyst/rlua/blob/master/examples/guided_tour.rs
I believe mlua [0] is the recommended Lua Rust binding now.
[0] https://github.com/khvzak/mlua
I looked at many options, what I lacked when I looked in this space is a big comparable project to, say, my game engine https://github.com/lanarts/lanarts that uses one of these typed Lua's. I'm not in a position where I can spend the time being the first - typescript has very mature idioms for large code bases