liberasurecode

Crates.ioliberasurecode
lib.rsliberasurecode
version1.0.3
sourcesrc
created_at2018-09-27 09:52:30.569279
updated_at2019-08-21 06:54:20.510766
descriptionA Rust wrapper for `openstack/liberasurecode`
homepagehttps://github.com/frugalos/liberasurecode
repositoryhttps://github.com/frugalos/liberasurecode
max_upload_size
id86800
size57,167
Toshihiro Shimizu (meso)

documentation

README

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..]));
Commit count: 40

cargo fmt