#域名 #网络 #http #用户界面 #无std #替换

无std idna

IDNA (应用程序中的国际化域名) 和 Punycode

16个版本 (3个稳定版)

1.0.2 2024年7月1日
0.5.0 2023年11月22日
0.4.0 2023年6月5日
0.3.0 2022年9月8日
0.1.0 2016年3月30日

#99文本处理

Download history 2288669/week @ 2024-05-03 2370381/week @ 2024-05-10 2429837/week @ 2024-05-17 2372438/week @ 2024-05-24 2632185/week @ 2024-05-31 2745165/week @ 2024-06-07 2675433/week @ 2024-06-14 2655436/week @ 2024-06-21 2465206/week @ 2024-06-28 2532379/week @ 2024-07-05 2611368/week @ 2024-07-12 2653011/week @ 2024-07-19 2651215/week @ 2024-07-26 2658122/week @ 2024-08-02 2905792/week @ 2024-08-09 2747414/week @ 2024-08-16

11,476,788每月下载量
用于 27,757 个Crates(79个直接)

MIT/Apache

145KB
2K SLoC

idna

IDNA库,为Rust实现 Rust 提供支持

IDNA库用于Rust,实现 Rust 功能

  • 错误处理
  • 安装
  • API参考

GitHub仓库 (servo)

  • 文档(github.io)
  • 16个版本 (3个稳定版)
  • 2024年7月1日
  • 2023年11月22日

2023年6月5日

2022年9月8日

需要向用户显示主机名的应用程序应使用uts46::Uts46::to_user_interface。对于直接应用程序的使用,ToUnicode操作很少是合适的。

Cargo功能

  • alloc - 为了向后兼容。目前始终需要。目前,包内部可能会分配堆内存,但对于典型输入通常不会在堆上分配(除适用时输出String外)。
  • compiled_data - 为了向后兼容。目前始终需要。(传递给ICU4X。)
  • std - 添加了impl std::error::Error for Errors {}(并隐含了alloc)。
  • 默认情况下,所有上述功能都已启用。

自0.5.0以来的重大变更

  • 不再支持更严格的IDNA 2008限制。尝试启用它们会导致立即恐慌。UTS 46允许IDNA 2008允许的所有名称,并且当过渡处理被禁用时,它们以相同的方式解析。还有一些IDNA 2008不允许但UTS 46映射到IDNA 2008允许的名称(特别是,输入映射到折叠大小写的输出)。UTS 46还允许IDNA 2003允许的符号以及根据相同原则允许的新符号。(此crate的早期版本允许拒绝这样的符号。早期版本不支持拒绝UTS 46映射到IDNA 2008允许字符的字符。)
  • domain_to_ascii_strict现在执行CheckHyphens检查(与之前的文档匹配)。
  • 现在实现了ContextJ规则,并且始终启用,即使在使用旧版已弃用的API时也是如此,因此失败的输入将被拒绝。
  • 已删除Idna::to_ascii_inner方法。作为一个公开方法,它没有意义,因为调用者无法确定是否存在错误。(GitHub搜索未发现对此方法的调用。)
  • 解码不产生任何非ASCII字符的Punycode标签现在被视为错误。
  • 关闭默认的cargo功能时,需要显式启用cargo功能compiled_data

依赖项

~3.5MB
~59K SLoC