Skip to content

xpenatan/jLua

Repository files navigation

jLua

WIP Lua 5.5 bindings for Java applications on desktop, web, and Android.

Lua 5.5 migration

jLua 5.5.0.0 is a breaking upgrade and does not provide deprecated or compatibility aliases:

  • Replace lua_resetthread(index) with lua_closethread(LuaState.NULL), or pass the originating state when closing a coroutine.
  • Replace lua_setuservalue(index) with lua_setiuservalue(index, 1).
  • Replace lua_concat(op, count) with lua_concat(count).
  • lua_absindex now returns the absolute index.
  • Lua integers and native sizes now use Java long.
  • Replace the removed format-only lua_pushfstring binding with lua_pushstring for plain strings.

TeaVM C bindings and native libraries can be generated for each supported desktop target with:

.\gradlew.bat :lua:builder:jParser_build_windows64_teavm_c
.\gradlew.bat :lua:builder:jParser_build_linux64_teavm_c
.\gradlew.bat :lua:builder:jParser_build_mac64_teavm_c
.\gradlew.bat :lua:builder:jParser_build_macArm_teavm_c

Samples

The basic sample lives under samples/basic, with its shared Lua implementation and separate fdx and gdx backend branches kept inside that folder. Both integrations use OpenGL/OpenGL ES/WebGL; no WebGPU sample is included.

Run the desktop JNI and FFM samples for 60 frames with:

.\gradlew.bat "--project-prop=jlua.sample.exitAfterFrames=60" "--project-prop=jlua.sample.failFast=true" :samples:basic:fdx:platforms:desktop-jni:lua_fdx_desktop_gl_jni_run
.\gradlew.bat "--project-prop=jlua.sample.exitAfterFrames=60" "--project-prop=jlua.sample.failFast=true" :samples:basic:fdx:platforms:desktop-ffm:lua_fdx_desktop_gl_ffm_run
.\gradlew.bat "--project-prop=jlua.sample.exitAfterFrames=60" "--project-prop=jlua.sample.failFast=true" :samples:basic:gdx:gl:platforms:desktop-jni:lua_gdx_desktop_jni_run
.\gradlew.bat "--project-prop=jlua.sample.exitAfterFrames=60" "--project-prop=jlua.sample.failFast=true" :samples:basic:gdx:gl:platforms:desktop-ffm:lua_gdx_desktop_ffm_run

The remaining OpenGL targets are available through:

.\gradlew.bat :samples:basic:fdx:platforms:desktop-c:lua_fdx_desktop_gl_c_run
.\gradlew.bat :samples:basic:fdx:platforms:web:lua_fdx_webgl_js_run
.\gradlew.bat :samples:basic:fdx:platforms:web:lua_fdx_webgl_wasm_run
.\gradlew.bat :samples:basic:fdx:platforms:android:lua_fdx_android_gles_run

.\gradlew.bat :samples:basic:gdx:gl:platforms:desktop-c:lua_gdx_desktop_c_run
.\gradlew.bat :samples:basic:gdx:gl:platforms:web:lua_gdx_webgl_js_run
.\gradlew.bat :samples:basic:gdx:gl:platforms:web:lua_gdx_webgl_wasm_run
.\gradlew.bat :samples:basic:gdx:gl:platforms:android:lua_gdx_android_jni_run

About

Lua Java Bindings

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages