#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