Skip to content

jkvargas/russimp-sys

Repository files navigation

russimp-sys russimp-sys Crates.io

Unsafe Rust bindings for the Open Asset Import Library (assimp).
See: Our safe assimp Rust library

Raw bindings for the C API of assimp.

Platform Support

We build, test, and provide prebuilt packages for the following targets:

  • x86_64-pc-windows-msvc
  • x86_64-apple-darwin
  • x86_64-unknown-linux-gnu

Additional targets that work when building from source:

  • aarch64-apple-darwin (M1 Macs, cross-compiled on x86_64.)
  • aarch64-unknown-linux-gnu (Raspberry Pi 4b, built on the machine itself.)
  • x86_64-pc-windows-gnu

Installation

By default russimp-sys is looking for the assimp library in the system.
However there are many ways for the crate to install the library for you by specifying these crate features:

prebuilt

This features will download a prebuilt package from this repo's release page, these packages are built and published automatically every time we release a new version.

In addition, you can specify a local package by setting the RUSSIMP_PACKAGE_DIR environment variable to the path of the package. You can run the provided package binary to generate a package for your platform.

cargo run --bin package --features <INSERT-LINK-TYPE>

build-assimp or static-link

The build-assimp feature will build the library from source and link it dynamically.
The static-link feature will build the library from source and link it statically.

Building from source requires the following dependencies:

  • CMake
  • libclang (for bindgen)
  • A C/C++ compiler
  • RECOMMENDED: Ninja (For Windows users the buildscript automatically uses Ninja if it finds it in the PATH)

Additional Features:

nozlib

By default russimp-sys will statically link zlibstatic. Enabling this feature will link to the system's zlib library.

Changelog

2.0.2

  • Window build fix

2.0.0

  • Complete overhaul of the build process.

  • Expose all assimp headers.

  • Rework CI pipeline.

  • Support for local assimp packaging and local package usage. (See: prebuilt feature)

  • Remove vcpkg support.

  • Remove nolibcxx feature.

1.0.3

  • Builds based on 5.2.5 release

1.0.0