21 个稳定版本 (3 个主要版本)
| 3.0.0 | 2024年7月11日 | 
|---|---|
| 2.3.0 | 2024年3月21日 | 
| 2.2.1 | 2024年1月23日 | 
| 2.1.1 | 2023年11月25日 | 
| 0.1.0 | 2023年5月10日 | 
在 解析器实现 中排名 141
每月下载量 161
1MB
 15K  SLoC
Rust 的 WHATWG URL 解析器
快速遵循 WHATWG URL 规范 的 URL 解析器,适用于 Rust。经过良好测试,并且自 Node 18 以来被 Node.js 广泛使用。
Ada 库通过了规范中涵盖的完整测试范围,支持多种平台(例如,Windows、Linux、macOS)。它完全支持相关的 Unicode 技术标准。
用法
有关用法示例,请参阅 此处。您可以使用 cargo run --example simple 在本地运行它。请随意调整以进一步探索此软件包。
功能
std: 需要 std 的功能。此功能默认启用,如果要启用 no-std,则设置 no-default-features 为 true。
serde: 允许 Url 与 serde 一起使用。此功能默认禁用。启用此功能且没有 std 的情况下将仅提供 Serialize。启用此功能并带有 std 将同时提供 Serialize 和 Deserialize。
libcpp: 使用 libc++ 构建代码 ada-url。此功能默认禁用。如果没有安装 libc++ 就启用此功能将导致编译错误。
性能
Ada 速度很快。以下基准测试显示与 url 相比,URL 解析速度提高了 3.34 倍
parse/ada_url           time:   [2.0790 µs 2.0812 µs 2.0835 µs]
                        thrpt:  [369.84 MiB/s 370.25 MiB/s 370.65 MiB/s]
parse/url               time:   [6.9266 µs 6.9677 µs 7.0199 µs]
                        thrpt:  [109.77 MiB/s 110.59 MiB/s 111.25 MiB/s]
实现特性
Url 实现以下特性。
| 特性 | 描述 | 
|---|---|
| 显示 | 提供 to_string,并允许在 format! 宏(例如println!)中使用值。 | 
| 调试 | 允许在格式宏中输出调试信息,使用 {:?}语法 | 
| PartialEq,Eq | 允许比较,例如 url1 == url2,url1.eq(url2) | 
| PartialOrd,Ord | 允许排序 url1 < url2,按字母顺序进行。这还允许Url作为BTreeMap的键使用 | 
| 哈希 | 使得 Url可以根据字符串表示进行哈希。这对于将Url作为HashMap的键使用非常重要 | 
| FromStr | 允许与 str'sparse方法 一起使用 | 
| TryFrom<String>,TryFrom<&str> | 为 String和&str提供了try_into方法 | 
| Borrow<str>,Borrow<[u8]> | 在一些 crate 中使用,以便 Url可以作为键使用。 | 
| Deref<目标类型=str> | 允许 &Url解引用为&str。还提供了一些字符串方法 | 
| AsRef<[u8]>,AsRef<str> | 用于执行廉价的引用到引用的转换。 | 
| Send | 用于声明类型可以在线程边界之间传输。 | 
| Sync | 用于声明类型是线程安全的。 | 
开发
justfile
justfile 包含可以由 just 执行的命令(称为“配方”)以方便使用。
运行所有 lints 和测试
just all
跳过功能
just all --skip=libcpp,serde
许可证
此代码可在 Apache License 2.0 以及 MIT 许可证下使用。
我们的测试包括第三方代码和数据。基准测试代码包括第三方代码:仅提供研究目的,不是库的一部分。
依赖关系
~0.3–1.3MB
~27K SLoC