15 个不稳定版本 (6 个破坏性更新)
0.7.0 | 2023 年 4 月 8 日 |
---|---|
0.5.1 | 2023 年 1 月 7 日 |
0.5.0 | 2022 年 9 月 29 日 |
0.4.0 | 2021 年 11 月 4 日 |
#618 在 解析器实现 中
每月下载量 3,598
用于 17 个 crate (3 个直接使用)
60KB
1K SLoC
URN
一个用于处理 URN 的 Rust crate。解析和比较按照规范执行(这意味着只有 URN 的一部分用于相等性检查)。某些 RFC 定义了每个命名空间的词法等效规则,这里不考虑这些规则。
RFC2141 在某些情况下比 RFC8141 更宽松(反之亦然),已采取措施能够解析任一规范。在百分编码 URN 组件时,生成的 URN 将始终对 RFC2141 和 RFC8141 解析器都有效。但是,某些命名空间的百分编码/解码规则可能不同。
在功能标志之后提供 Serde 支持。如果禁用默认的 "std" 功能,则提供 no_std
支持。 alloc
也是可选的。 UrnSlice
是借用 URN, Urn
是所有者 URN。有关文档,请参阅 docs.rs。
URN 有许多令人惊讶的细节,以至于我不确定其他 URN 解析器是否可信!诚然,它们非常少,因为几乎没有人真正需要 URN...
变更日志
- 0.1.0 - 初始版本
- 0.1.1 - 添加
FromStr
实现 - 0.2.0 - 为了使用
FromStr
,删除了Urn::parse
函数,并改进了文档 - 0.2.1 - 删除 0.1 版本留下的文件
- 0.3.0 - 主要实现变更,删除了
Namespace
(感谢 u/chris-morgan 的帮助) - 0.3.1 - 修复空 NSS 的 panic 并在 r-组件中添加 "?=" 终止符("?" 和 "=" 都可以是 r-组件的一部分,但它们一起终止它)
- 0.3.2 - 为
Urn
添加Clone
实现 - 0.3.3 - 更精确的构建器错误;通过减少内存占用最多 15 字节(但在 16 位平台上增加 5 字节)
- 0.3.4 - 由 @callym 提供 Serde 支持
- 0.4.0 - 将
UrnBuilder::namespace
->UrnBuilder::nid
- 0.5.0 - 改变构建器 API 以接受可选组件的选项,稍作清理,修复了一些潜在的轻微错误
- 0.5.1 - 修复了字符串中4字节处没有有效UTF-8字符边界时的panic问题
- 0.6.0 - 添加了
alloc
功能,添加了UrnSlice
类型,添加了percent
模块,未实现Deref<Target = str>
。这个crate即将接近1.0版本。 - 0.7.0 - 添加了对非
'static
UrnSlice
的反序列化支持,始终编码有效的RFC2141 URNs,在percent::encode_*
中检查空字符串。
许可证
TL;DR(长话短说)做你想做的。
根据您的选择,许可协议为BSD Zero Clause License(https://opensource.org/licenses/0BSD)、Apache 2.0 License(http://www.apache.org/licenses/LICENSE-2.0)或MIT License(http://opensource.org/licenses/MIT),详情请参阅BSD Zero Clause License、Apache 2.0 License或MIT License。
依赖项
~170KB