#reed-solomon #erasure #algorithm #encoding #codec

reed-solomon-novelpoly

一种复杂度为O(n lg(n))的reed solomon码/编码器/解码器的实现

6个版本 (稳定版)

2.0.0 2024年1月25日
1.0.2 2023年9月17日
1.0.1 2023年8月30日
1.0.0 2021年3月26日
0.0.3 2021年3月19日

#58算法

Download history 32767/week @ 2024-04-12 30596/week @ 2024-04-19 20915/week @ 2024-04-26 20914/week @ 2024-05-03 25354/week @ 2024-05-10 22607/week @ 2024-05-17 33655/week @ 2024-05-24 28556/week @ 2024-05-31 23269/week @ 2024-06-07 23022/week @ 2024-06-14 29514/week @ 2024-06-21 22128/week @ 2024-06-28 24352/week @ 2024-07-05 30402/week @ 2024-07-12 32956/week @ 2024-07-19 26561/week @ 2024-07-26

每月117,631次下载
用于 35 个crate(直接使用3个)

Apache-2.0 AND MIT

110KB
2.5K SLoC

Rust 2.5K SLoC // 0.1% comments C 269 SLoC // 0.1% comments

reed-solomon-novelpoly

新型多项式基的实现及其在Reed-Solomon纠删码中的应用 1 2 3.

编码和重建的复杂度为O(n lg(n))。注意,对于较小的n,由于重建过程中的全域walsh变换,存在一个静态偏移。

目标

对于n > 100,实现非常快的速度。

基准测试

为了对实现进行自测和与朴素实现进行基准测试,使用criterion

cargo bench

模糊测试

目前使用honggfuzz

安装 cargo install cargo-hongg 并运行

cargo-hongg fuzz --bin <binary_name>

依赖项

~0.8–1.9MB
~35K SLoC