2 个不稳定版本

0.3.0 2023年3月23日
0.2.2 2022年11月8日
0.2.1 2022年10月26日
0.2.0 2021年2月17日
0.1.0 2020年6月7日

#322编码

Download history 40027/week @ 2024-03-14 42328/week @ 2024-03-21 41262/week @ 2024-03-28 45234/week @ 2024-04-04 48056/week @ 2024-04-11 48113/week @ 2024-04-18 46118/week @ 2024-04-25 49677/week @ 2024-05-02 56205/week @ 2024-05-09 61346/week @ 2024-05-16 56431/week @ 2024-05-23 57994/week @ 2024-05-30 61700/week @ 2024-06-06 63695/week @ 2024-06-13 63670/week @ 2024-06-20 49488/week @ 2024-06-27

250,452 每月下载量
417 个 crate 中使用 (11 直接)

MIT 许可证

13KB
201

newline-converter

newline-converter 是一个简单的库,用于在字符串之间转换 Windows \r\n 和 Unix \n 风格的换行符。它主要作为 Rust Newline converter CLI 工具的后端。

Crates.io

换行符处理方法的比较

newline-converter (此 crate)

  • ✅ 正确处理边缘情况,例如孤立的 \r 字符。例如,在调用 unix2dos 后,\r\n 序列不会变成 \r\r\n
    use newline_converter::unix2dos;
    assert_eq!(
      unix2dos("\nfoo\r\nbar\n"),
      "\r\nfoo\rbar\n"
    );
    
  • ✅ 当输入数据较小时(少量带行中断的文本字节)性能最快。
  • ❌ 当处理大型数据集时(例如 100 段 Lorem Ipsum 文本)性能最慢(或者在 unix2dos 的情况下是第二慢)。

string.replace

  • ❌ 在 unix2dos 中未能正确处理边缘情况。
  • ✅ 在大型数据集上表现良好。

regex crate Regex::replace_all

  • ❌ 由于缺乏对 look around 的支持,在 unix2dos 中未能正确处理边缘情况。
  • ✅ 在大型数据集上有最佳性能。

fancy-regex crate Regex::replace_all

  • ✅ 正确处理边缘情况。
  • ❌ 由于使用了 look around,unix2dos 在所有实现中性能最差,慢了一个数量级。

请查看 benches/bench.rs 以获取比较基准测试。

MSRV

最低支持的 Rust 版本是 1.38.0

依赖关系

~555KB