#encode #decode #sanitize #sanitise

bin+lib marksman_escape

HTML 转义和 HTML 反转义字符串

4 个版本

使用旧的 Rust 2015

0.1.2 2015年8月26日
0.1.1 2015年2月22日
0.1.0 2015年2月22日
0.0.1 2015年2月21日

4#sanitize 中排名

Download history 79/week @ 2024-02-08 106/week @ 2024-02-15 74/week @ 2024-02-22 106/week @ 2024-02-29 116/week @ 2024-03-07 107/week @ 2024-03-14 352/week @ 2024-03-21 137/week @ 2024-03-28 482/week @ 2024-04-04 241/week @ 2024-04-11 113/week @ 2024-04-18 171/week @ 2024-04-25 126/week @ 2024-05-02 111/week @ 2024-05-09 127/week @ 2024-05-16 110/week @ 2024-05-23

506 每月下载量
7 个 crate 中使用

ISC 许可证

460KB
812

一个快速的 HTML 编码和 HTML 解码实现(在 Rust 中)。

快吗?

实际上,我仅将此实现与 Python 的 html.encodehtml.decode 进行了比较,Python 的性能如此之低,几乎无法进行比较...

无论如何,这里是在 Intel 的 [email protected] 上(完全非科学的)的数字和它们的解释

test no_escape_bytes        ... bench:      1109 ns/iter (+/- 56) = 952 MB/s
test no_escape_bytes_filter ... bench:      2725 ns/iter (+/- 151) = 387 MB/s
test no_escape_chars        ... bench:      2695 ns/iter (+/- 144) = 391 MB/s

我们进行了 3 个基准测试:两个用于检查迭代器消耗的速度,一个用于基准测试流的最小过滤。这些基准测试作为参考点,可以清楚地了解转义和反转义带来的开销。

test escape_mixed            ... bench:      5595 ns/iter (+/- 129) = 175 MB/s
test escape_no_spec          ... bench:      6494 ns/iter (+/- 119) = 347 MB/s
test escape_spec_long        ... bench:      5515 ns/iter (+/- 157) = 117 MB/s
test escape_spec_short       ... bench:      4324 ns/iter (+/- 94)  = 150 MB/s

test unescape_no_spec        ... bench:      7228 ns/iter (+/- 7)   = 242 MB/s
test unescape_spec_hex       ... bench:      3024 ns/iter (+/- 191) = 277 MB/s
test unescape_spec_named     ... bench:      8073 ns/iter (+/- 386) = 109 MB/s
test unescape_spec_num       ... bench:      2995 ns/iter (+/- 195) = 280 MB/s

请注意,转义和反转义基准测试测试的是输入消耗的速度,而不是产生速度。随着对 Iterator 的代码生成改进以及我与 LLVM 的斗争结束,它们可能会进一步改进。

无运行时依赖