4 releases

0.3.3 Jan 19, 2023
0.3.2 Nov 14, 2022
0.3.1 Apr 12, 2022
0.3.0 Apr 6, 2022

#845 in Development tools

Download history 6203/week @ 2022-11-28 5920/week @ 2022-12-05 6126/week @ 2022-12-12 5640/week @ 2022-12-19 3008/week @ 2022-12-26 4979/week @ 2023-01-02 5229/week @ 2023-01-09 7484/week @ 2023-01-16 10146/week @ 2023-01-23 8965/week @ 2023-01-30 8688/week @ 2023-02-06 10713/week @ 2023-02-13 11377/week @ 2023-02-20 12185/week @ 2023-02-27 11902/week @ 2023-03-06 10134/week @ 2023-03-13

46,143 downloads per month
Used in 19 crates (via ittapi)

GPL-2.0-only OR BSD-3-Clause

19K SLoC

Rust 12K SLoC // 0.0% comments C 2.5K SLoC // 0.1% comments FORTRAN Modern 1.5K SLoC // 0.1% comments GNU Style Assembly 1.5K SLoC // 0.1% comments C++ 598 SLoC // 0.1% comments Assembly 354 SLoC // 0.0% comments Python 156 SLoC // 0.0% comments


Build Status Documentation Status

This crate contains low-level Rust bindings for the C ittapi library--you likely want to use the high-level Rust crate. The ittapi library is used for various aspects of Intel® profiling; it exposes the Instrumentation and Tracing Technology (ITT) API as well as the Just-In-Time (JIT) Profiling API. More details about ittapi are available on its README.

IMPORTANT NOTE: this crate is currently only tested on Linux, macOS, and Windows platforms but support for other platforms is intended; contributions are welcome! FreeBSD is supported but untested.

If you are interested in using VTune to profile Rust applications, you may find the following guide helpful: Wasmtime Docs: Using VTune on Linux


ittapi-sys = "0.3"


cargo build

Building ittapi-sys will build the ittapi C library and link it statically into your application; see the build.rs file.

For Windows developers: this crate uses a symbolic link to access the C library it depends on. To modify this crate on Windows, either configure Git to understand POSIX symlinks or use the copy-c-library.ps1 script to temporarily copy the files.


cargo test

This crate's tests ensure the ittapi-sys bindings remain up to date with the official C header files; they do not check ittapi functionality.

Regenerate Bindings

If the ittapi-sys bindings are not up to date, they can be regenerated with:

BLESS=1 cargo test

The binding generation uses bindgen. An in-depth description of how to use bindgen is available in the bindgen documentation.

No runtime deps