4 个稳定版本

使用旧的 Rust 2015

1.0.3 2019 年 8 月 21 日
1.0.2 2018 年 10 月 12 日
1.0.1 2018 年 10 月 2 日
1.0.0 2018 年 9 月 27 日

#1435编码

每月 22 次下载
3 个包中使用 (通过 ecpool)

MIT 许可证

35KB
632

liberasurecode

Crates.io: liberasurecode Documentation Build Status License: MIT

A Rust 对 openstack/liberasurecode 的封装。

文档

构建先决条件

此包需要以下软件包在构建脚本中构建 openstack/liberasurecode

  • C 编译器(例如,gcc
  • git
  • make
  • automake
  • autoconf
  • libtool

例如,在 Ubuntu 上,您可以通过执行以下命令来安装这些软件包

$ sudo apt install gcc git make automake autoconf libtool

示例

基本用法

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

依赖项

~43KB