Skip to content

puru1761/kcapi-sys

Repository files navigation

The Raw Rust Bindings for libkcapi

CI Badge License Badge Crate Badge

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.

Pre-requisites

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:

  • autotools
  • autoconf
  • llvm-dev
  • libtool
  • build-essential

RPM based package manager

sudo yum install automake autoconf llvm-devel

Debian based package manager

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"

Build

We use cargo as our build system for building this crate. Build it using:

cargo build

Build With Local libkcapi

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.

Test

We have a few sanity tests written to make sure that the bindings work as expected. Run these tests using:

cargo test

Author

About

The Raw (low-level) Rust bindings for libkcapi

Resources

License

Stars

Watchers

Forks

Packages

No packages published