Crates.io | instant-epp |
lib.rs | instant-epp |
version | 0.4.0 |
source | src |
created_at | 2023-10-26 08:17:53.742686 |
updated_at | 2024-06-10 08:48:31.452066 |
description | EPP client library for async Rust |
homepage | |
repository | https://github.com/instant-labs/instant-epp |
max_upload_size | |
id | 1014231 |
size | 400,079 |
instant-epp is a client library written in Rust for Internet domain registration and management for domain registrars. We have implemented support for the following standards:
This library is used in production at Instant Domains.
instant-epp was originally created by @masalachai as epp-client in the summer of 2021. By fall, Instant Domains employees started contributing to the project. In February of 2023, after most of the contributions to epp-client had come from Instant Domains for the intervening years, we decided to fork the project, replacing its dependency on quick-xml with instant-xml in the process. Many thanks to @masalachai for starting epp-client!
You can create a mut variable of type EppClient
with the domain registry config.
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));
}
The output would look like this:
Domain: eppdev.com, Available: 1
Domain: eppdev.net, Available: 1