7 个版本
0.5.1 | 2024 年 5 月 6 日 |
---|---|
0.5.0 | 2023 年 9 月 12 日 |
0.5.0-alpha.1 | 2023 年 7 月 12 日 |
0.4.1 | 2022 年 5 月 10 日 |
0.4.0-alpha.3 | 2022 年 1 月 20 日 |
在 电子邮件 中排名 33
每月下载量 335
在 18 个crate中(通过 viaspf)使用
90KB
2.5K SLoC
viaspf-record
viaspf-record 库包含 SPF 记录的数据模型和解析器。SPF 记录在 发送者策略框架 规范中描述,版本 1 (RFC 7208)。
本库中的数据结构构成了对 RFC 7208,第 12 节 中 ABNF 的完整且忠实的编码。广泛的检查确保了正确性和与规范的兼容性。
此库在 viaspf 中使用,其中可以找到 SPF 的完整实现,包括执行 SPF 查询的 API。viaspf-record 库是一个独立的产品,也可以用于其他项目。
最低支持的 Rust 版本是 1.65.0。
使用方法
这是一个 Rust 库。像往常一样,在 Cargo.toml
中包含 viaspf-record。
结构体 SpfRecord
表示一个语法上有效的 SPF 记录。可以编程构造一个 SpfRecord
或从一个字符串解析它。
use std::net::Ipv4Addr;
use viaspf_record::*;
let spf_record = "v=spf1 mx ip4:12.34.56.78/24 -all".parse();
assert_eq!(
spf_record,
Ok(SpfRecord {
terms: vec![
Term::Directive(Directive {
qualifier: None,
mechanism: Mechanism::Mx(Mx {
domain_spec: None,
prefix_len: None,
}),
}),
Term::Directive(Directive {
qualifier: None,
mechanism: Mechanism::Ip4(Ip4 {
addr: Ipv4Addr::new(12, 34, 56, 78),
prefix_len: Some(Ip4CidrLength::new(24).unwrap()),
}),
}),
Term::Directive(Directive {
qualifier: Some(Qualifier::Fail),
mechanism: Mechanism::All,
}),
],
})
);
有关详细信息,请参阅 API 文档。
许可证
版权所有 © 2020–2024 David Bürgin
本程序是自由软件:您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下重新分发和/或修改它,许可证版本 3 或(根据您的选择)任何较新版本。
本程序是免费提供给用户的,但没有任何保证;甚至没有关于其适销性或特定用途适用性的暗示性保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已经随本程序收到一份 GNU 通用公共许可证副本。如果没有,请参阅 https://gnu.ac.cn/licenses/。