26 个版本
0.0.26 | 2023 年 10 月 15 日 |
---|---|
0.0.25 | 2023 年 10 月 15 日 |
0.0.3 | 2023 年 5 月 18 日 |
#1947 in 编码
170 每月下载量
1.5MB
30K SLoC
musli-tests
确保 musli 安全使用并按预期行为的一组辅助工具。
这包括一个相当复杂的基准测试套件。
基准测试
现在这包括 extra
分类,它需要 model_minimal
。这并不完全公平,因为它比较的是为模拟其他无法实现的数据而设计的序列化格式。
可以通过比较功能 model_full
和 model_minimal
来查看确切的权衡。
cargo bench --no-default-features --features musli,full,extra,model_minimal,simdutf8
要运行支持所有功能的序列化套件的基准测试,请
cargo bench --features full
模糊测试
这包括一个名为 fuzz
的二进制文件,可以执行以下操作。
长时间对大量随机数据进行序列化。既有 miri,也有没有 miri 的情况。当与 miri 一起运行时,数据集的大小会大幅减少。
cargo run --bin fuzz
cargo +nightly miri run --bin fuzz
对随机生成的字节进行反序列化。既有 miri,也有没有 miri 的情况。当与 miri 一起运行时,数据集的大小会大幅减少。
cargo run --bin fuzz -- --random
cargo +nightly miri run --bin fuzz -- --random
注意 您可以通过启用相应的功能来运行可选的 crate,例如
--features bincode
。
此 crate 发现的潜在安全问题
dlhn
:根据不可信的输入分配和初始化大型数组(DoS):dlhn#11.
大小比较
进行一次性的大小比较
cargo run --bin fuzz -- --size
现在这只会取给定类型的第一个生成的字段,对其进行序列化,并打印出其大小。将来它将在整个集合上执行平均值,并提供更多统计数据。
依赖关系
~2–4MB
~81K SLoC