#gamedev #engine #bindings

no-std xash3d-ffi

Raw FFI bindings to Xash3D FWGS engine

4 releases

0.2.1 Oct 17, 2025
0.2.0 Oct 11, 2025
0.1.1 Sep 26, 2025
0.1.0 Sep 12, 2025

#226 in Game dev

Download history 147/week @ 2025-09-09 47/week @ 2025-09-16 761/week @ 2025-09-23 1369/week @ 2025-09-30 1664/week @ 2025-10-07 1001/week @ 2025-10-14 302/week @ 2025-10-21 937/week @ 2025-10-28 747/week @ 2025-11-04

3,011 downloads per month

MIT license

350KB
9K SLoC

Raw FFI bindings to Xash3D FWGS engine

xash3d-ffi provides all of the definitions necessary to interoperate with Xash3D FWGS engine. Bindings are generated statically to minimize build dependencies.

Features

  • std - links to the standard library.
  • libm - add additional methods to vectors in no-std environments.
  • glam - use vector types from this crate.

Features to enable bindings for DLLs

  • all (enabled by default) - bindings to all supported DLLs.
  • client - bindings to a client DLL.
  • server - bindings to a server DLL.
  • menu - bindings to a menu DLL.
  • render - bindings to a render DLL.

Usage

Add the following to your Cargo.toml:

[dependencies]
xash3d-ffi = "0.1"

Rust version support

The minimum supported Rust toolchain version is currently Rust 1.64.

Generate bindings

bindgen-cli is required.

To manually generate bindings run generate.sh [target]. The default target is i686-unknown-linux-gnu.

cd xash3d-ffi
./generate.sh

Dependencies

~0–1.5MB
~46K SLoC