oxijolt-sys — Jolt Physics bindings via joltc
Unsafe bindings to Jolt Physics 5.6.0, generated by bindgen over joltc's joltc.h and this
repository's native/joltc_ext/joltc_ext.h, with joltc's JPH_* names. joltc and Jolt are pinned
submodules under vendor/, compiled unmodified with CMake. The extension adds functions in
joltc's naming (state recording, character updates with explicit filters and temp allocator,
ragdoll parts and joints that keep every setting, constraint motor access, materials with user
data, a soft body contact listener) and is compiled into the joltc archive. The safe API is the
oxijolt crate.
Build requirements
On x86_64-pc-windows-msvc and x86_64-unknown-linux-gnu the build script downloads the native
libraries of this version's GitHub release with curl and checks them against the sha256 in the
packaged prebuilt.txt; it needs only the platform linker. Elsewhere, and whenever no archive fits
(another feature set, crt-static, an older MSVC toolset or glibc, an offline, vendored or Nix
build, JOLTC_PREBUILT=off), it builds them from source, which needs:
- A C++ toolchain (MSVC on Windows, GCC or Clang elsewhere)
- CMake 3.20 or newer
The bindings are committed under src/bindings/ for the registered 64-bit targets
(build/targets.rs), so no libclang is needed. Set JOLTC_LIB_DIR to a prebuilt install prefix
(lib/, include/joltc.h, include/joltc_ext.h, oxijolt-sys-manifest.txt) to skip both. The
prefix must match the target, C runtime, features and pinned commits; the build script checks
this. Building has every rule and
switch.
Features
prebuilt(default): use the verified release archive when one fits, as above.asserts: compile Jolt with its debug assertions.double-precision: world positions inf64(Real,JPH_RVec3).cross-platform-deterministic: build Jolt with its cross-platform deterministic floating point settings.debug-renderer: compile Jolt's debug renderer and bind joltc's drawing functions.bindgen: generate the bindings with libclang at build time instead of using the committed ones; it adds no supported target.