2 个版本
0.1.1 | 2023年12月14日 |
---|---|
0.1.0 | 2023年7月28日 |
#463 in 网页编程
每月 9,564 次下载
在 2 个crate中使用 (通过 passkey-client)
420KB
21K SLoC
public-suffix by 1Password
《public-suffix》crate 提供了一种紧凑且高效的方法来确定任何给定域的有效 TLD+1。
此 crate 由一个数据文件驱动,存储在 public-suffix-list.dat
中,并包含生成 Rust 结构以在代码中表示此信息的代码。
使用此 Crate
您可以直接使用此 crate,使用包含的 DEFAULT_PROVIDER
列表,如下所示
let domain = "sainsburys.co.uk";
let etld = DEFAULT_PROVIDER.effective_tld_plus_one(domain);
生成自定义公共后缀列表
可能用户希望根据特定应用的需求,为某些域计算不同的 eTLD+1。
为此,提供您自己的 public_suffix_list.dat
版本,并运行包含的生成脚本 (gen.sh
),使用自定义 TLD 文件的內容。
这将重新生成这些数据在 Rust 中的表示,以便包含在您自己的 crate 中。由 gen.sh
调用的 main.go
程序支持各种参数来控制其输出。您可能希望使用的常用参数包括
--output-path
- 存储生成的文件的目录。--base-name
- 生成的文件的基准名称。生成器将在指定的output-path
目录中创建${base-name}.rs
和${base-name}_test.rs
。--struct
- 将生成以表示您的自定义 TLD 数据的 Rust 结构的名称。--crate
- 一个布尔值,控制结构是否以public_suffix::StructName
(如果为真) 或crate::StructName
(如果为假) 的形式创建。在创建您自己的结构时,始终将此设置为假。
使用您的自定义公共后缀列表
接下来,在你的 Cargo.toml
中,禁用此 crate 中的 default-provider
功能: default-features = false
。这样做将移除内置的公共后缀列表结构的实现,然后你可以使用自己的
type PublicSuffixList = ListProvider<my_custom_tld_list::MyCustomTldListStruct>;
pub const MY_CUSTOM_TLD_LIST: PublicSuffixList = PublicSuffixList::new();
...然后你可以在 MY_CUSTOM_TLD_LIST
上调用相同的函数
let domain = "sainsburys.co.uk";
let etld = MY_CUSTOM_TLD_LIST.effective_tld_plus_one(domain);
贡献和反馈
public-suffix
是一个 开源项目。
🐛 如果你发现了一个想要报告的问题,或者有其他反馈,请 提交一个新的问题。
🧑💻 如果你想为代码做出贡献,请先通过 问题 进行提交或评论,以便我们跟踪工作。
致谢
由 1Password 团队用 ❤️ 和 ☕ 制作。
为你的开源项目获取免费 1Password 账户
你的团队需要一种安全的方式来管理开源项目的密码和其他凭证吗?请访问我们的 其他仓库,以免费获得 1Password Teams 账户
✨1Password for Open Source Projects
许可证
根据你的选择,许可为 Apache 许可证 2.0 版 或 MIT 许可证。除非你明确表示,否则你提交给本 crate 的任何有意贡献,根据 Apache-2.0 许可证的定义,都应双许可如上,不附加任何额外条款或条件。