xref: /isa-l/README.md (revision bc48c1e2dcfef19e81cc9ead4f324ad4fa54f978)
1Intel(R) Intelligent Storage Acceleration Library
2=================================================
3
4[![Build Status](https://travis-ci.org/01org/isa-l.svg?branch=master)](https://travis-ci.org/01org/isa-l)
5
6ISA-L is a collection of optimized low-level functions targeting storage
7applications.  ISA-L includes:
8* Erasure codes - Fast block Reed-Solomon type erasure codes for any
9  encode/decode matrix in GF(2^8).
10* CRC - Fast implementations of cyclic redundancy check.  Six different
11  polynomials supported.
12  - iscsi32, ieee32, t10dif, ecma64, iso64, jones64.
13* Raid - calculate and operate on XOR and P+Q parity found in common RAID
14  implementations.
15* Compression - Fast deflate-compatible data compression.
16* De-compression - Fast inflate-compatible data compression.
17
18Also see:
19* [ISA-L for updates](https://github.com/01org/isa-l).
20* For crypto functions see [isa-l_crypto on github](https://github.com/01org/isa-l_crypto).
21* The [github wiki](https://github.com/01org/isa-l/wiki) including a list of
22  [distros/ports](https://github.com/01org/isa-l/wiki/Ports--Repos) offering binary packages.
23* ISA-L [mailing list](https://lists.01.org/mailman/listinfo/isal).
24* [Contributing](CONTRIBUTING.md).
25
26Building ISA-L
27--------------
28
29### Prerequisites
30
31* Assembler: nasm v2.11.01 or later (nasm v2.13 or better suggested for building in AVX512 support)
32  or yasm version 1.2.0 or later.
33* Compiler: gcc, clang, icc or VC compiler.
34* Make: GNU 'make' or 'nmake' (Windows).
35* Optional: Building with autotools requires autoconf/automake packages.
36
37### Autotools
38To build and install the library with autotools it is usually sufficient to run:
39
40    ./autogen.sh
41    ./configure
42    make
43    sudo make install
44
45### Makefile
46To use a standard makefile run:
47
48    make -f Makefile.unx
49
50### Windows
51On Windows use nmake to build dll and static lib:
52
53    nmake -f Makefile.nmake
54
55### Other make targets
56Other targets include:
57* `make check` : create and run tests
58* `make tests` : create additional unit tests
59* `make perfs` : create included performance tests
60* `make ex`    : build examples
61* `make other` : build other utilities such as compression file tests
62* `make doc`   : build API manual
63