Crate leopard_codec
source ·Expand description
§Leopard codec
This is a Rust rewrite of a Go O(n*log n)
implementation of Reed-Solomon codes,
ported from the klauspost/reedsolomon,
which is a port of the C++ library catid/leopard.
The original implementation is based on the paper:
S.-J. Lin, T. Y. Al-Naffouri, Y. S. Han, and W.-H. Chung,
“Novel Polynomial Basis with Fast Fourier Transform and Its Application to Reed-Solomon Erasure Codes”
IEEE Trans. on Information Theory, pp. 6284-6299, November, 2016.
§Features support
The leopard algorithm uses either 8-bit or 16-bit Galois fields with Cantor basis. The 8-bit implementation should be used with up to 256 total shards and 16-bit when more shards are needed.
- Encoding parity shards using 8-bit leopard algorithm
- Reconstructing shards using 8-bit leopard algorithm
- Encoding parity shards using 16-bit leopard algorithm
- Reconstructing shards using 16-bit leopard algorithm
Enums§
- Possible errors that can happen when interacting with Leopard.
Constants§
- Number of bits per element
- Basis used for generating logarithm tables
- Modulus for field operations
- Finite field order: Number of elements in the field
- LFSR Polynomial that generates the field elements
Functions§
- Encode parity data into given shards.
- Reconstructs original shards from the provided slice.
Type Aliases§
- A result type with
LeopardError
.