6个版本 (3个重大更新)
0.4.0 | 2024年6月10日 |
---|---|
0.3.0 | 2024年5月27日 |
0.2.2 | 2024年3月25日 |
0.2.1 | 2024年1月8日 |
0.1.0 | 2023年10月26日 |
#551 在 网络编程
每月下载 139 次
215KB
5K SLoC
异步Rust的EPP客户端库
描述
instant-epp是一个用Rust编写的客户端库,用于域名注册和管理,适用于域名注册商。我们实现了以下标准的支持
- RFC 5730 - 可扩展提供协议(EPP)
- RFC 5731 - 可扩展提供协议(EPP)域名映射
- RFC 5732 - 可扩展提供协议(EPP)主机映射
- RFC 5733 - 可扩展提供协议(EPP)联系映射
- RFC 5734 - 可扩展提供协议(EPP)通过TCP传输
- RFC 3915 - 域名注册宽限期映射
- ConsoliDate映射
- Namestore扩展映射
- 低余额映射
此库在Instant Domains的生产环境中使用。
历史
instant-epp最初由@masalachai在2021年夏天以epp-client的形式创建。到秋天,Instant Domains的员工开始为该项目做出贡献。2023年2月,在中间几年中,epp-client的大部分贡献都来自Instant Domains之后,我们决定分叉该项目,在此过程中,用instant-xml替换其对quick-xml的依赖。感谢@masalachai启动epp-client!
入门
您可以使用域名注册配置创建一个类型为EppClient
的可变变量。
use std::collections::HashMap;
use std::net::ToSocketAddrs;
use std::time::Duration;
use instant_epp::EppClient;
use instant_epp::domain::DomainCheck;
use instant_epp::common::NoExtension;
#[tokio::main]
async fn main() {
// Create an instance of EppClient
let timeout = Duration::from_secs(5);
let mut client = match EppClient::connect("registry_name".to_string(), ("example.com".to_owned(), 7000), None, timeout).await {
Ok(client) => client,
Err(e) => panic!("Failed to create EppClient: {}", e)
};
// Make a EPP Hello call to the registry
let greeting = client.hello().await.unwrap();
println!("{:?}", greeting);
// Execute an EPP Command against the registry with distinct request and response objects
let domain_check = DomainCheck { domains: &["eppdev.com", "eppdev.net"] };
let response = client.transact(&domain_check, "transaction-id").await.unwrap();
response
.res_data()
.unwrap()
.list
.iter()
.for_each(|chk| println!("Domain: {}, Available: {}", chk.inner.id, chk.inner.available));
}
输出将如下所示
Domain: eppdev.com, Available: 1
Domain: eppdev.net, Available: 1
依赖项
~4–15MB
~185K SLoC