This is a crate that allows interop with the (g)luajit c api as well as the source sdk through libloading and vtable bindings. You can then use these for binary modules or manually injected code, like with Autorun-rs
More information on binary modules can be found on the garrysmod wiki: Creating Binary Modules and examples can be found here.
If you are targeting 32 bit make sure to install the toolchain and build to it:
rustup target add i686-pc-windows-msvc
cargo build --target=i686-pc-windows-msvc
There are actually a decent amount of libraries out there for gmod development. Here's a comparison and why you could use this one.
Library | rglua | rust-glua-sys | gmod-rs | gmrs |
---|---|---|---|---|
Full Lua C Api Bindings | βοΈ | β | β | β |
On Crates.io | βοΈ | β | βοΈ | β |
Proc Macros | βοΈ | β | βοΈ | βοΈ |
Interfacing w/ Source SDK | βοΈ | β | β | β |
Returning Result<> from functions | βοΈ | β | β | βοΈ |
Can be used on stable | βοΈ | βοΈ | β | βοΈ |
Real world examples | βοΈ | β | γ°οΈ | βοΈ |
Linux / OSX Support | βοΈ | β | βοΈ | βοΈ |
Github Stars | π’ | π | π | π€·ββοΈ |
You can help with that last one π
This is heavily based off of garrysmod_common, in how we export the lua_shared functions and trying to replicate everything from the Lua C Api.