#plugins #cargo #subcommand #llvm-ir #interrupt

bin+lib cargo-compiler-interrupts

Cargo subcommands that integrate the Compiler Interrupts to the package

5 stable releases

4.0.1 Oct 19, 2022
3.2.1 Aug 4, 2021
3.2.0 Jul 31, 2021
3.1.0 Jul 24, 2021
3.0.1 Jul 2, 2021

#298 in Cargo plugins

Download history 9/week @ 2023-10-28 1/week @ 2023-11-11 3/week @ 2023-11-18 32/week @ 2023-11-25 5/week @ 2023-12-02 6/week @ 2023-12-09 10/week @ 2023-12-23 5/week @ 2023-12-30 1/week @ 2024-01-06 1/week @ 2024-01-13 6/week @ 2024-01-20 20/week @ 2024-01-27 2/week @ 2024-02-03 23/week @ 2024-02-10

51 downloads per month

MIT license

1.5K SLoC


crates.io docs.rs license

cargo-compiler-interrupts provides you a seamless way to integrate the Compiler Interrupts to any Rust packages. Check out the Compiler Interrupts main repository for more info.


  • Rust 1.45.0 or later and LLVM 9 or later are required. Both must have the same LLVM major version.
  • You can check the LLVM version from Rust toolchain and LLVM toolchain by running rustc -vV and llvm-config --version respectively.
  • x86-64 architecture with Linux or macOS is highly recommended. Other architectures and platforms have not been tested.


cargo-compiler-interrupts can be installed via cargo install.

cargo install cargo-compiler-interrupts

You can also fetch the repo and install using --path.

git clone https://github.com/bitslab/cargo-compiler-interrupts
cargo install --path ./cargo-compiler-interrupts

Install the Compiler Interrupts library.

cargo-lib-ci install

Getting started


  • cargo-lib-ci — manage the Compiler Interrupts library.
  • cargo-build-ci — build and integrate the Compiler Interrupts to the package.
  • cargo-run-ci — run the integrated binary. You can specify which binary to run by passing --bin <BINARY>.
cargo-lib-ci install    # install the CI library
cargo-build-ci          # build and integrate CI to the binary
cargo-run-ci            # run the CI-integrated binary


  • Run cargo-lib-ci install to install the Compiler Interrupts library first.
  • Before running cargo-build-ci, add the Compiler Interrupts API package as the dependency for your Rust program and registers the Compiler Interrupts handler. Compiler Interrupts API is provided through the compiler-interrupts crate.
fn interrupt_handler(ic: i64) {
    println!("Compiler interrupt called with instruction count: {}", ic);

unsafe {
    compiler_interrupts::register(1000, 1000, interrupt_handler);

For more detailed usages and internals, run the command with --help option and check out the documentation.


All issue reports, feature requests, pull requests and GitHub stars are welcomed and much appreciated. Issues relating to the Compiler Interrupts library should be reported to the main repository.


Quan Tran (@quanshousio)



cargo-compiler-interrupts is available under the MIT license. See the LICENSE file for more info.


~420K SLoC