2 个版本
0.1.1 | 2021 年 9 月 6 日 |
---|---|
0.1.0 | 2021 年 7 月 4 日 |
#1600 在 算法 中
98KB
1.5K SLoC
“在线码”的实现,一种喷泉码类型
目前这只是一个占位符包。它打算成为我现有的 Perl/C 实现的移植/重构。
现有的 Perl 实现可在 CPAN 上的 Net::OnlineCode 获得。源代码可在 GitHub 上找到 此处,位于 Net-OnlineCode
目录下。
我注意到在 crates.io
上还有一个类似名称的包,它实现了相同的算法。如果您来这里想找到那个,可以在这里找到它 这里。
版本 0.1.1
本版本实现了一个简单的编解码器(编码器/解码器),以测试各个模块中的所有代码是否正确。
关注点/注意点
-
使用更自然的解方程变量想法,而不是实现显式的二分图
-
使用实现了
RngCore
的 RNG,而不是固定 RNG(允许轻松自定义) -
编解码器不与文件一起使用(而不是,一个块 = 一个 u32),但这很容易扩展
-
库只处理在线码算法,因此用户负责对文件块进行异或操作(和网络)
-
HashSet 的使用在性能方面出现了一个大问题;用未排序的列表替换它可能会大幅提高性能。HashSet 还是非确定性的来源,因为迭代器以随机顺序返回集合成员。
-
是对原始论文的忠实实现
-
核心例程经过良好测试,我对它们的正确性有很高的信心
依赖项
~1.5MB
~21K SLoC