summaryrefslogtreecommitdiff
path: root/libraries/zfec/README
blob: 0ae6f6963eadff2d0de5b78f6de3eadf83fe7897 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
This package implements an "erasure code", or "forward error
correction code".

You may use this package under the GNU General Public License, version
2 or, at your option, any later version. You may use this package
under the Transitive Grace Period Public Licence, version 1.0. (You
may choose to use this package under the terms of either licence,
at your option.) See the file COPYING.GPL for the terms of the GNU
General Public License, version 2. See the file COPYING.TGPPL.html for
the terms of the Transitive Grace Period Public Licence, version 1.0.

The most widely known example of an erasure code is the RAID-5
algorithm which makes it so that in the event of the loss of any one
hard drive, the stored data can be completely recovered. The algorithm
in the zfec package has a similar effect, but instead of recovering
from the loss of only a single element, it can be parameterized to
choose in advance the number of elements whose loss it can tolerate.

This package is largely based on the old "fec" library by Luigi Rizzo
et al., which is a mature and optimized implementation of erasure
coding. The zfec package makes several changes from the original "fec"
package, including addition of the Python API, refactoring of the C
API to support zero-copy operation, a few clean-ups and optimizations
of the core code itself, and the addition of a command-line tool named
"zfec".