Skip to content
Erasure Code API library written in C with pluggable Erasure Code backends.
Objective-C C Other
Branch: master
Clone or download
donnydavis Update test to build on FreeBSD 12
Change-Id: I1ab792c3c509539a73a1808b8c28c6748185ae00
Closes-Bug: 1835071
Latest commit 135c3a2 Jul 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc re-org of README Jun 7, 2017
include 1.6.1 release May 23, 2019
playbooks/unittests Install Jerasure and ISA-L libs Oct 22, 2018
roles Install yasm in RHEL based systems Apr 9, 2019
src Merge "Remove get_chksum to hush warnings" Feb 14, 2019
test
.gitignore Remove remaining m4/ references Jun 21, 2015
.gitreview Update .gitreview following project rename Jun 12, 2019
.mailmap Release 1.6.0 Sep 21, 2018
.zuul.yaml Install yasm in RHEL based systems Apr 9, 2019
AUTHORS Release 1.6.0 Sep 21, 2018
COPYING Add doxygen config. Update README, copyrights. Sep 2, 2014
ChangeLog 1.6.1 release May 23, 2019
Makefile.am Fix building with LD_LIBRARY_PATH set Oct 1, 2018
NEWS Add NEWS and README back May 27, 2016
README Add NEWS and README back May 27, 2016
README.md re-org of README Jun 7, 2017
Xorcode.pc.in autoconf: Add Xorcode pkgconfig, other minor fixes Jun 30, 2014
autogen.sh Add -f argument to autoreconf to regenerate aclocal macros Jun 22, 2015
bindep.txt Use zlib for CRC-32 Jul 6, 2017
configure.ac Merge "Stop using ceill() to compute padded data size" Jun 6, 2017
erasurecode.pc.in Add dl to pkg-config metadata Jul 13, 2017
erasurecode_rs_vand.pc.in Add pkg-config template for liberasurecode_rs_vand Jun 23, 2015
get_flags_from_cpuid.c Fix get_supported_flags() arguments Jun 22, 2015

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"

You can’t perform that action at this time.