#reed-solomon #erasure #leopard

leopard-codec

使用leopard算法实现的Reed-Solomon码的实现

1个不稳定版本

0.1.0 2024年4月15日

#540 in 编码

Download history · Rust 包仓库 321/week @ 2024-04-25 · Rust 包仓库 175/week @ 2024-05-02 · Rust 包仓库 486/week @ 2024-05-09 · Rust 包仓库 364/week @ 2024-05-16 · Rust 包仓库 290/week @ 2024-05-23 · Rust 包仓库 491/week @ 2024-05-30 · Rust 包仓库 790/week @ 2024-06-06 · Rust 包仓库 2106/week @ 2024-06-13 · Rust 包仓库 2802/week @ 2024-06-20 · Rust 包仓库 2760/week @ 2024-06-27 · Rust 包仓库 2495/week @ 2024-07-04 · Rust 包仓库 2508/week @ 2024-07-11 · Rust 包仓库 3407/week @ 2024-07-18 · Rust 包仓库 4792/week @ 2024-07-25 · Rust 包仓库 3471/week @ 2024-08-01 · Rust 包仓库 4407/week @ 2024-08-08 · Rust 包仓库

16,732 每月下载量
5 个crate中使用 (通过 celestia-types)

Apache-2.0

345KB
846

Leopard codec

这是Go语言中Reed-Solomon码的O(nlogn)实现的Rust重写版本,从klauspost/reedsolomon迁移而来,该实现是C++库catid/leopard的迁移版本。

原始实现基于以下论文:

S.-J. Lin,T. Y. Al-Naffouri,Y. S. Han和W.-H. Chung

"具有快速傅里叶变换的新型多项式基及其在Reed-Solomon纠删码中的应用"

IEEE信息理论杂志,第6284-6299页,2016年11月。

功能支持

leopard算法使用8位或16位Cantor基的Galois域。当总分片数达到256个时,应使用8位实现,当需要更多分片时,应使用16位。

  • 使用8位leopard算法编码奇偶分片
  • 使用8位leopard算法重建分片
  • 使用16位leopard算法编码奇偶分片
  • 使用16位leopard算法重建分片

依赖项

~0.4–1MB
~20K SLoC