#ipp #sys #intel #bindgen


toplevel convenience crate (part of ipp-sys Intel IPP bindings)

9 releases

0.4.5 Nov 23, 2019
0.4.4 Nov 23, 2019
0.4.3 Jul 11, 2019
0.4.2 Mar 18, 2019
0.1.0 Oct 3, 2017

#37 in Profiling

Download history 410/week @ 2021-08-11 225/week @ 2021-08-18 262/week @ 2021-08-25 357/week @ 2021-09-01 419/week @ 2021-09-08 363/week @ 2021-09-15 178/week @ 2021-09-22 300/week @ 2021-09-29 603/week @ 2021-10-06 351/week @ 2021-10-13 316/week @ 2021-10-20 408/week @ 2021-10-27 520/week @ 2021-11-03 206/week @ 2021-11-10 333/week @ 2021-11-17 640/week @ 2021-11-24

1,777 downloads per month


190K SLoC


What is this crate?

This crate provides wrappers of the Intel Integrated Performance Primitives (Intel IPP) library made with rust-bindgen.

Version support

Use the 2017, 2018, or 2019 cargo feature to use IPP 2017, 2018, or 2019 respectively.

Download IPP

Get IPP from https://software.intel.com/en-us/intel-ipp


Compile IPP statically into your app by setting environment variable IPP_STATIC=1.

You must set the IPPROOT environment variable at compilation time. This is used by the build.rs files to find your IPP installation. Typically, this is set using a tool provided by Intel with IPP and run as follows.

On Linux:

source /opt/intel/compilers_and_libraries_2019/linux/ipp/bin/ippvars.sh -arch intel64 -platform linux

On Mac:

source /opt/intel/compilers_and_libraries_2019/mac/bin/compilervars.sh -arch intel64 -platform mac

On Windows:

"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\ipp\bin\ippvars.bat" intel64

In Cargo.toml, include ipp-sys as a dependency with a feature to select the IPP version used:

ipp-sys = { version = "0.4", features=["2019"] }

Now, you can use ipp_sys in your crate. You might like to check that you compiled the correct version by doing something like:

// Get the version from IPP at runtime.
let linked_version_major = unsafe{ (*ipp_sys::ippGetLibVersion()).major };
let linked_version_minor = unsafe{ (*ipp_sys::ippGetLibVersion()).minor };

// Compare the runtime major version with the compile-time major version.
assert_eq!( linked_version_major as i32, ipp_sys::IPP_VERSION_MAJOR as i32);
// And compare the minor version, too.
assert_eq!( linked_version_minor as i32, ipp_sys::IPP_VERSION_MINOR as i32);

API documentation

See the ipp-headers-sys page on docs.rs.

A note about this file (README.md in the ipp-sys crate)

This file is automatically generated from the ipp-sys docstring by running the following command:

cargo readme > README.md