Skip to content

frugalos/liberasurecode

Repository files navigation

liberasurecode

Crates.io: liberasurecode Documentation Build Status License: MIT

A Rust wrapper for openstack/liberasurecode.

Documentation

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..]));