#reed-solomon #erasure #leopard

leopard-codec

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

1个不稳定版本

0.1.0 2024年4月15日

#540 in 编码

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

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