#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 • Rust 包仓库 32767/week @ 2024-04-12 • Rust 包仓库 30596/week @ 2024-04-19 • Rust 包仓库 20915/week @ 2024-04-26 • Rust 包仓库 20914/week @ 2024-05-03 • Rust 包仓库 25354/week @ 2024-05-10 • Rust 包仓库 22607/week @ 2024-05-17 • Rust 包仓库 33655/week @ 2024-05-24 • Rust 包仓库 28556/week @ 2024-05-31 • Rust 包仓库 23269/week @ 2024-06-07 • Rust 包仓库 23022/week @ 2024-06-14 • Rust 包仓库 29514/week @ 2024-06-21 • Rust 包仓库 22128/week @ 2024-06-28 • Rust 包仓库 24352/week @ 2024-07-05 • Rust 包仓库 30402/week @ 2024-07-12 • Rust 包仓库 32956/week @ 2024-07-19 • Rust 包仓库 26561/week @ 2024-07-26 • Rust 包仓库

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

Apache-2.0 AND MIT

110KB
2.5K SLoC

Rust 2.5K SLoC // 0.1% comments • Rust 包仓库 C 269 SLoC // 0.1% comments • Rust 包仓库

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