isa-l

Crates.ioisa-l
lib.rsisa-l
version0.2.0
sourcesrc
created_at2020-03-02 13:06:47.35621
updated_at2020-06-25 10:42:10.238918
descriptionIdiomatic bindings to libisal, the Intel(R) Intelligent Storage Acceleration Library
homepage
repositoryhttps://gitlab.com/kschibli/isa-l-rs
max_upload_size
id214461
size26,799
(kschibli)

documentation

README

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
    
Commit count: 22

cargo fmt