oxijolt-sys 1.1.0+jolt-5.6.0

Unsafe bindings to Jolt Physics through the joltc C wrapper
Documentation

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 in f64 (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.