isa-l 0.2.0

Idiomatic bindings to libisal, the Intel(R) Intelligent Storage Acceleration Library
Documentation

isa-l-rs

Rust bindings to libisal, the Intel(R) Intelligent Storage Acceleration Library

Currently only bindings for Erasure codes are implemented. CRC, Raid, Compression and De-compression might follow later (PRs welcome).

Usage

# Cargo.toml
[dependencies]
isa-l = "0.1"

Building

Dynamic linking to libisal >= 2.14.1 is attempted otherwise it is built from source. Building from source requires nasm or yasm (See https://github.com/intel/isa-l#prerequisites).

Updating libisal-sys bindings

To update the bindings we use bindgen and update the resulting bindings manually:

  • Install bindgen:
    $ cargo install bindgen
    
  • Install the new version of libisal on the system.
  • Enter the tools directory:
    $ cd tools
    
  • Review wrapper.h and bindgen.sh
  • Generate the new bindings
    $ ./bindgen.sh > ../libisal-sys/lib.bindgen.rs
    
  • Merge with old bindings, check docs, update / add tests
    $ vimdiff ../libisal-sys/lib.bindgen.rs ../libisal-sys/lib.rs