9个版本
0.0.16 | 2024年3月15日 |
---|---|
0.0.15 | 2023年12月18日 |
0.0.14 | 2023年11月26日 |
0.0.13 | 2023年8月7日 |
0.0.9 | 2023年6月24日 |
#597 在 网络编程
每月37次下载
在 3 crate 中使用
280KB
7K SLoC
ICANN RDAP Common
这是由互联网名称与数字地址分配机构(ICANN)编写和资助的通用组件库,用于注册数据访问协议(RDAP)。RDAP是IETF的标准,RDAP的扩展是IETF REGEXT工作组当前的工作活动。关于ICANN在RDAP中的作用,更多信息可以在这里找到。
安装
将库添加到Cargo.toml文件: cargo add icann-rdap-common
.
此库可以编译为WASM目标。
用法
创建一些RDAP对象
// create an entity
use icann_rdap_common::response::entity::Entity;
let holder = Entity::basic().handle("foo-BAR").build();
// create an RDAP domain
use icann_rdap_common::response::domain::Domain;
let domain = Domain::basic().ldh_name("example.com").entity(holder.clone()).build();
// create an IP network
use icann_rdap_common::response::network::Network;
let net = Network::basic().cidr("10.0.0.0/16").entity(holder.clone()).build().unwrap();
// create a nameserver
use icann_rdap_common::response::nameserver::Nameserver;
let ns = Nameserver::basic().ldh_name("ns1.example.com").entity(holder.clone()).build().unwrap();
// create an autnum
use icann_rdap_common::response::autnum::Autnum;
let autnum = Autnum::basic().autnum_range(700..700).entity(holder).build();
解析RDAP JSON
use icann_rdap_common::response::RdapResponse;
let json = r#"
{
"objectClassName": "ip network",
"links": [
{
"value": "https://127.0.0.1:3000/rdap/ip/10.0.0.0/16",
"rel": "self",
"href": "https://127.0.0.1:3000/rdap/ip/10.0.0.0/16",
"type": "application/rdap+json"
}
],
"events": [
{
"eventAction": "registration",
"eventDate": "2023-06-16T22:56:49.594173356+00:00"
},
{
"eventAction": "last changed",
"eventDate": "2023-06-16T22:56:49.594189140+00:00"
}
],
"startAddress": "10.0.0.0",
"endAddress": "10.0.255.255",
"ipVersion": "v4"
}
"#;
let rdap: RdapResponse = serde_json::from_str(json).unwrap();
assert!(matches!(rdap, RdapResponse::Network(_)));
许可
许可协议为以下之一
- Apache许可证第2版(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)任选。
贡献
除非你明确声明,否则根据Apache-2.0许可证定义的任何贡献,有意提交给工作以包含在内的,根据Apache-2.0许可证定义,将根据ICANN的选择,根据Apache许可证第2版或上述MIT许可证进行双许可,不附加任何额外条款或条件。
依赖
~6–23MB
~348K SLoC