7 releases

0.4.0 Oct 23, 2023
0.3.5 Oct 5, 2023
0.3.4 Jul 28, 2023
0.3.3 Jan 19, 2023
0.3.1 Apr 12, 2022

#1045 in Development tools

Download history 39050/week @ 2024-08-12 36451/week @ 2024-08-19 34440/week @ 2024-08-26 35836/week @ 2024-09-02 38268/week @ 2024-09-09 36151/week @ 2024-09-16 34955/week @ 2024-09-23 35111/week @ 2024-09-30 42415/week @ 2024-10-07 31715/week @ 2024-10-14 36520/week @ 2024-10-21 39141/week @ 2024-10-28 44248/week @ 2024-11-04 40665/week @ 2024-11-11 43526/week @ 2024-11-18 35648/week @ 2024-11-25

166,810 downloads per month
Used in 41 crates (via ittapi)

GPL-2.0-only OR BSD-3-Clause

720KB
18K SLoC

Rust 14K SLoC // 0.0% comments C 2K SLoC // 0.0% comments GNU Style Assembly 1.5K SLoC // 0.1% comments Assembly 354 SLoC // 0.0% comments

ittapi-sys

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 and OpenBSD are 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

Use

[dependencies]
ittapi-sys = "0.3"

Build

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.

Test

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