rdapify
A fast, secure, production-ready RDAP client library for Rust.
RDAP (Registration Data Access Protocol) is the modern replacement for WHOIS, defined in RFC 9083 and RFC 9224.
Features
- 5 query types — domain, IP, ASN, nameserver, entity
- IANA Bootstrap (RFC 9224) — automatic server discovery, no manual configuration needed
- SSRF protection — blocks requests to private, loopback, and link-local addresses
- In-memory cache — configurable TTL and capacity, lock-free via
DashMap - IDN support — accepts Unicode domain names, normalises to Punycode automatically
- Retry with back-off — exponential back-off on network errors and 5xx/429 responses
- Zero OpenSSL — uses
rustls(pure Rust TLS) - Async-first — built on
tokio
Installation
[]
= "0.1"
Quick Start
use RdapClient;
async
Usage
Domain Query
let res = client.domain.await?;
println!;
println!;
println!;
if let Some = &res.registrar
IP Address Query
// IPv4
let res = client.ip.await?;
// IPv6
let res = client.ip.await?;
println!;
println!;
ASN Query
// Both formats accepted
let res = client.asn.await?;
let res = client.asn.await?;
println!;
Nameserver Query
let res = client.nameserver.await?;
println!;
Entity Query
let res = client.entity.await?;
println!;
println!;
Configuration
use ;
use Duration;
let client = with_config?;
CLI
Enable the cli feature to build the rdapify binary:
= { = "0.1", = ["cli"] }
Or install it directly:
# Machine-readable JSON output
MSRV
Minimum supported Rust version: 1.75
License
MIT — see LICENSE