Erasure Code API library written in C with pluggable Erasure Code backends.
Go to file
Pete Zaitcev 3564b711b4 Remove get_chksum to hush warnings
This popped up because Fedora mandates warning-free builds,
and get_chksum triggers a warning because it returns an
unaligned pointer (it is so analigned, static analysis in
the compiler can detect it).

The easiest fix is to remove it altogether. We think it should
be safe, because:

 - The function is not listed in any headers
 - Its counterpart is called "set_checksum", not "set_chksum"
 - PyECLib does not use it

We also hush some doxygen warnings about wrong comments.

Change-Id: Ie5bc736f912706e0ffd507765abd24e7f4761233
2019-02-13 00:46:52 -06:00
doc re-org of README 2017-06-07 10:59:01 -04:00
include Release 1.6.0 2018-09-21 10:28:15 -04:00
playbooks/unittests Install Jerasure and ISA-L libs 2018-10-22 10:40:16 -04:00
roles Install Jerasure and ISA-L libs 2018-10-22 10:40:16 -04:00
src Remove get_chksum to hush warnings 2019-02-13 00:46:52 -06:00
test Allow reading of little-endian frags on big-endian 2018-09-11 21:58:34 -06:00
.gitignore Remove remaining m4/ references 2015-06-21 22:17:08 +00:00
.gitreview Release 1.2.0 2016-05-27 14:03:51 -04:00
.mailmap Release 1.6.0 2018-09-21 10:28:15 -04:00
.zuul.yaml Import Zuul unittests 2018-03-01 20:02:26 +01:00
AUTHORS Release 1.6.0 2018-09-21 10:28:15 -04:00
COPYING Add doxygen config. Update README, copyrights. 2014-09-01 22:40:09 -07:00
ChangeLog Release 1.6.0 2018-09-21 10:28:15 -04:00
Makefile.am Fix building with LD_LIBRARY_PATH set 2018-10-01 16:35:35 +02:00
NEWS Add NEWS and README back 2016-05-27 14:27:11 -04:00
README Add NEWS and README back 2016-05-27 14:27:11 -04:00
README.md re-org of README 2017-06-07 10:59:01 -04:00
Xorcode.pc.in autoconf: Add Xorcode pkgconfig, other minor fixes 2014-06-29 21:42:09 -07:00
autogen.sh Add -f argument to autoreconf to regenerate aclocal macros 2015-06-22 02:49:16 +00:00
bindep.txt Use zlib for CRC-32 2017-07-06 17:40:38 +00:00
configure.ac Merge "Stop using ceill() to compute padded data size" 2017-06-06 19:17:12 +00:00
erasurecode.pc.in Add dl to pkg-config metadata 2017-07-13 13:26:00 -07:00
erasurecode_rs_vand.pc.in Add pkg-config template for liberasurecode_rs_vand 2015-06-23 04:07:26 +00:00
get_flags_from_cpuid.c Fix get_supported_flags() arguments 2015-06-22 02:54:25 +00:00

README.md

liberasurecode

liberasurecode is an Erasure Code API library written in C with pluggable Erasure Code backends.


Highlights

  • Unified Erasure Coding interface for common storage workloads.

  • Pluggable Erasure Code backends - liberasurecode supports the following backends:

    • 'liberasurecode_rs_vand' - Native, software-only Erasure Coding implementation that supports a Reed-Solomon backend
    • 'Jerasure' - Erasure Coding library that supports Reed-Solomon, Cauchy backends [1]
    • 'ISA-L' - Intel Storage Acceleration Library - SIMD accelerated Erasure Coding backends [2]
    • 'SHSS' - NTT Lab Japan's hybrid Erasure Coding backend [4]
    • 'Flat XOR HD' - built-in to liberasurecode, based on [3]
    • 'libphazr' - Phazr.IO's erasure code backend with built-in privacy [5]
    • 'NULL' template backend implemented to help future backend writers
  • True 'plugin' architecture - liberasurecode uses Dynamically Loaded (DL) libraries to realize a true 'plugin' architecture. This also allows one to build liberasurecode indepdendent of the Erasure Code backend libraries.

  • Cross-platform - liberasurecode is known to work on Linux (Fedora/Debian flavors), Solaris, BSD and Darwin/Mac OS X.

  • Community support - Developed alongside Erasure Code authority Kevin Greenan, liberasurecode is an actively maintained open-source project with growing community involvement (Openstack Swift, Ceph, PyECLib, NTT Labs).


Active Users


Build and Install

Install dependencies -

Debian/Ubuntu hosts:

 $ sudo apt-get install build-essential autoconf automake libtool

Fedora/RedHat/CentOS hosts:

 $ sudo yum install -y gcc make autoconf automake libtool

To build the liberasurecode repository, perform the following from the top-level directory:

 $ ./autogen.sh
 $ ./configure
 $ make
 $ make test
 $ sudo make install

References

[1] Jerasure, C library that supports erasure coding in storage applications, http://jerasure.org

[2] Intel(R) Storage Acceleration Library (Open Source Version), https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version

[3] Greenan, Kevin M et al, "Flat XOR-based erasure codes in storage systems", http://www.kaymgee.com/Kevin_Greenan/Publications_files/greenan-msst10.pdf

[4] Kota Tsuyuzaki tsuyuzaki.kota@lab.ntt.co.jp, "NTT SHSS Erasure Coding backend"

[5] Jim Cheung support@phazr.io, "Phazr.IO libphazr erasure code backend with built-in privacy"