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: console $ sudo apt install gcc git make automake autoconf libtool

Examples

Basic usage: ```rust 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) asserteq!(Ok(&input), coder.decode(&fragments[0..]).asref()); asserteq!(Ok(&input), coder.decode(&fragments[1..]).asref()); asserteq!(Ok(&input), coder.decode(&fragments[2..]).asref()); assert_eq!(Err(Error::InsufficientFragments), coder.decode(&fragments[3..])); ```