This repository contains the official raw low-level bindings for
libkcapi. DO NOT use these
bindings directly in your project. Instead, a safe Rusty API will be provided
as a part of the kcapi crate.
Prior to building this project, clone this repository, and also checkout all it's included submodules recursively.
git clone https://github.com/puru1761/kcapi-sys.git --recurse-submodules
Install all build dependencies. These are:
autotoolsautoconfllvm-devlibtoolbuild-essential
sudo yum install automake autoconf llvm-devel
sudo apt-get install \
autotools-dev \
autoconf \
llvm-dev \
libtool \
build-essential \
If LLVM_CONFIG_PATH is not set, then set it with:
export LLVM_CONFIG_PATH="/path/to/llvm-config"
We use cargo as our build system for building this crate. Build it using:
cargo build
To build this crate with the locally installed version of libkcapi, you can
use the local-kcapi feature. In your Cargo.toml:
kcapi-sys = { version = "1.4.0", default-features = false, features = ["local-kcapi"] }
NOTE: This has been tested only with libkcapi v1.4.0 and is not guaranteed
to work with older libkcapi versions.
We have a few sanity tests written to make sure that the bindings work as expected. Run these tests using:
cargo test
- Purushottam A. Kulkarni <puruk@protonmail.com>