codemp/dist/lua
2024-09-06 13:21:19 +02:00
..
annotations.lua fix(lua): add type hints for poll_callback 2024-09-06 13:21:19 +02:00
build.sh fix(lua): build script target filename 2024-09-06 00:13:07 +02:00
README.md docs: improved cargo docs, rewrote readme 2024-09-05 01:45:48 +02:00

Lua bindings

Lua allows directly requireing properly constructed shared objects, so glue code can live completely on the Rust side.

The Lua-compatible wrappers are built with mlua.

To build, just cargo build --release --features=lua and rename the resulting libcodemp.so / codemp.dll / codemp.dylib in codemp_native.so/dll/dylib. This is important because Lua looks up the constructor symbol based on filename.

Type hints are provided in annotations.lua, just include them in your language server: ---@module 'annotations'.

Example loader

A simple loader is provided here:

---@module 'annotations'

---@return Codemp
local function load()
	local native, _ = require("codemp.native")
	return native
end

return {
	load = load,
}