#bindings #api-bindings #isal

sys erasure-isa-l-sys

FFI bindings to the isa-l library

3 stable releases

Uses new Rust 2024

1.0.2 Jun 27, 2025
1.0.1 May 21, 2025
1.0.0 May 20, 2025

#1241 in #bindings


Used in erasure-isa-l

MIT license

3.5MB
75K SLoC

Assembly 32K SLoC // 0.2% comments C 30K SLoC // 0.1% comments GNU Style Assembly 12K SLoC // 0.2% comments Shell 876 SLoC // 0.1% comments Automake 567 SLoC // 0.4% comments Bitbake 331 SLoC // 0.2% comments Rust 197 SLoC // 0.1% comments

Contains (obscure autoconf code, 6KB) vendor/isa-l/configure.ac

erasure-isa-l-sys

This is a Rust FFI binding for isa-l, which provides optimized low-level functions targeting storage applications in C. This project allows you to use raw functions in your Rust applications.

You can use a more rusty crate erasure-isa-l that provides a more idiomatic interface to the isa-l library.

Requirements

By default, this crate bundles the source code of isa-l, and compiles library during the build process, so you don't need to have libisal pre-installed on your system.

However, this crate uses the bindgen and autotools crates, which depend on the following packages:

  • libllvm
  • libtool
  • autoconf
  • automake
  • nasm

On Ubuntu-like distributions, you can install these dependencies using:

apt install autoconf automake libtool libclang-dev nasm

If you want to use the system library instead, you can unset the bundle feature. This will make the build process look for the libisal library on your system.

Contributing

Feel free to open an issue. If you've got a fix or feature ready, open a PR. Thanks!

License

MIT

No runtime deps

~0–2.2MB
~42K SLoC