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在 文本处理
11,476,788每月下载量
用于 27,757 个Crates(79个直接)
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