4 stable releases
Uses old Rust 2015
1.0.3 | Aug 21, 2019 |
---|---|
1.0.2 | Oct 12, 2018 |
1.0.1 | Oct 2, 2018 |
1.0.0 | Sep 27, 2018 |
#1435 in Encoding
22 downloads per month
Used in 3 crates
(via ecpool)
35KB
632 lines
liberasurecode
A Rust wrapper for openstack/liberasurecode.
Prerequisites to Build
This crate requires the following packages for building openstack/liberasurecode in the build script:
- C compiler (e.g.,
gcc
) git
make
automake
autoconf
libtool
For example, on Ubuntu, you can install those by executing the following command:
$ sudo apt install gcc git make automake autoconf libtool
Examples
Basic usage:
use liberasurecode::{ErasureCoder, Error};
let mut coder = ErasureCoder::new(4, 2)?;
let input = vec![0, 1, 2, 3];
// Encodes `input` to data and parity fragments
let fragments = coder.encode(&input)?;
// Decodes the original data from the fragments (or a part of those)
assert_eq!(Ok(&input), coder.decode(&fragments[0..]).as_ref());
assert_eq!(Ok(&input), coder.decode(&fragments[1..]).as_ref());
assert_eq!(Ok(&input), coder.decode(&fragments[2..]).as_ref());
assert_eq!(Err(Error::InsufficientFragments), coder.decode(&fragments[3..]));
Dependencies
~43KB