Intel(R) Intelligent Storage Acceleration Library ================================================= [![Build Status](https://travis-ci.org/intel/isa-l.svg?branch=master)](https://travis-ci.org/intel/isa-l) [![Package on conda-forge](https://img.shields.io/conda/v/conda-forge/isa-l.svg)](https://anaconda.org/conda-forge/isa-l) ISA-L is a collection of optimized low-level functions targeting storage applications. ISA-L includes: * Erasure codes - Fast block Reed-Solomon type erasure codes for any encode/decode matrix in GF(2^8). * CRC - Fast implementations of cyclic redundancy check. Six different polynomials supported. - iscsi32, ieee32, t10dif, ecma64, iso64, jones64, rocksoft64. * Raid - calculate and operate on XOR and P+Q parity found in common RAID implementations. * Compression - Fast deflate-compatible data compression. * De-compression - Fast inflate-compatible data compression. * igzip - A command line application like gzip, accelerated with ISA-L. Also see: * [ISA-L for updates](https://github.com/intel/isa-l). * For crypto functions see [isa-l_crypto on github](https://github.com/intel/isa-l_crypto). * The [github wiki](https://github.com/intel/isa-l/wiki) including a list of [distros/ports](https://github.com/intel/isa-l/wiki/Ports--Repos) offering binary packages as well as a list of [language bindings](https://github.com/intel/isa-l/wiki/Language-Bindings). * [Contributing](CONTRIBUTING.md). * [Security Policy](SECURITY.md). * Docs on [units](doc/functions.md), [tests](doc/test.md), or [build details](doc/build.md). Building ISA-L -------------- ### Prerequisites * Make: GNU 'make' or 'nmake' (Windows). * Optional: Building with autotools requires autoconf/automake/libtool packages. * Optional: Manual generation requires help2man package. x86_64: * Assembler: nasm. Version 2.15 or later suggested (other versions of nasm and yasm may build but with limited function [support](doc/build.md)). * Compiler: gcc, clang, icc or VC compiler. aarch64: * Assembler: gas v2.24 or later. * Compiler: gcc v4.7 or later. other: * Compiler: Portable base functions are available that build with most C compilers. ### Autotools To build and install the library with autotools it is usually sufficient to run: ./autogen.sh ./configure make sudo make install ### Makefile To use a standard makefile run: make -f Makefile.unx ### Windows On Windows use nmake to build dll and static lib: nmake -f Makefile.nmake or see [details on setting up environment here](doc/build.md). ### Other make targets Other targets include: * `make check` : create and run tests * `make tests` : create additional unit tests * `make perfs` : create included performance tests * `make ex` : build examples * `make other` : build other utilities such as compression file tests * `make doc` : build API manual