instant_epp/lib.rs
1//! # EPP (Extensible Provisioning Protocol) client library for async Rust
2//!
3//! ## Description
4//!
5//! instant-epp is a client library written in Rust for Internet domain registration and management
6//! for domain registrars. We have implemented support for the following standards:
7//!
8//! - [RFC 5730](https://tools.ietf.org/html/rfc5730) - Extensible Provisioning Protocol (EPP)
9//! - [RFC 5731](https://tools.ietf.org/html/rfc5731) - Extensible Provisioning Protocol (EPP) Domain Name Mapping
10//! - [RFC 5732](https://tools.ietf.org/html/rfc5732) - Extensible Provisioning Protocol (EPP) Host Mapping
11//! - [RFC 5733](https://tools.ietf.org/html/rfc5733) - Extensible Provisioning Protocol (EPP) Contact Mapping
12//! - [RFC 5734](https://tools.ietf.org/html/rfc5734) - Extensible Provisioning Protocol (EPP) Transport over TCP
13//! - [RFC 3915](https://tools.ietf.org/html/rfc3915) - Domain Registry Grace Period Mapping
14//! - [ConsoliDate mapping](https://www.verisign.com/assets/consolidate-mapping.txt)
15//! - [Namestore Extension Mapping](https://www.verisign.com/assets/epp-sdk/verisign_epp-extension_namestoreext_v01.html)
16//! - [Low Balance Mapping](https://www.verisign.com/assets/epp-sdk/verisign_epp-extension_low-balance_v01.html)
17//!
18//! This library is used in production with at [Instant Domains](https://instantdomains.com/).
19//!
20//! ## History
21//!
22//! instant-epp was originally created by [@masalachai](https://github.com/masalachai) as
23//! [epp-client](https://github.com/masalachai/epp-client) in the summer of 2021. By fall, Instant
24//! Domains employees started contributing to the project. In February of 2023, after most of the
25//! contributions to epp-client had come from Instant Domains for the intervening years, we decided
26//! to fork the project, replacing its dependency on quick-xml with
27//! [instant-xml](https://github.com/InstantDomain/instant-xml/) in the process. Many thanks to
28//! @masalachai for starting epp-client!
29//!
30//! ## Getting started
31//!
32//! You will usually want to start by initializing an [`EppClient`]. Refer to the example code
33//! on that type for more information.
34
35#![warn(unreachable_pub)]
36#![warn(clippy::use_self)]
37
38pub mod client;
39pub mod common;
40pub mod connection;
41pub mod contact;
42pub mod domain;
43mod error;
44pub mod hello;
45pub mod host;
46pub mod login;
47pub mod logout;
48pub mod poll;
49pub mod request;
50pub mod response;
51pub mod xml;
52
53pub mod extensions {
54 pub mod consolidate;
55 pub mod frnic;
56 pub mod low_balance;
57 pub mod namestore;
58 pub mod rgp;
59 pub mod secdns;
60}
61
62pub use client::EppClient;
63pub use error::Error;
64
65#[cfg(test)]
66pub mod tests;