isa-l 0.1.1

Idiomatic bindings to libisal, the Intel(R) Intelligent Storage Acceleration Library
docs.rs failed to build isa-l-0.1.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: isa-l-0.2.0

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.0"

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