Libraries

Client libraries can be embedded into other programs to give them the ability to query RDAP. These libraries are categorized by programming language.

GO

RegistroBR

Who-Go

Java

rdap-client

rdap-java

Other

Prometheus

adamdecaf rdap_exporter

hsn723 rdap_exporter

Rapid7

Splunkbase

Perl

Net::RDAP

Net::RDAP provides an interface to the Registration Data Access Protocol (RDAP).

RDAP is replacing Whois as the preferred way of obtainining information about Internet resources (IP addresses, autonymous system numbers, and domain names). As of writing, RDAP is fully supported by Regional Internet Registries (who are responsible for the allocation of IP addresses and AS numbers) and generic TLD operators (e.g. .com, .org, .xyz) but is still being rolled out among country-code registries.

Net::RDAP does all the hard work of determining the correct server to query (Net::RDAP::Registry is an interface to the IANA registry of RDAP services), querying the server (Net::RDAP::UA is an RDAP HTTP user agent), and parsing the response (Net::RDAP::Object and its submodules provide access to the data returned by the server). As such, it provides a single unified interface to information about all unique Internet identifiers.

PHP

Array Access RDAP Client

Meta Registrar RDAP Client

RDAP Whois Proxy

A bridge from WHOIS to RDAP

Python

IPWhois

Whodap

whodap | Simple RDAP Utility for Python

Support for asyncio HTTP requests (httpx) Leverages the SimpleNamespace type for cleaner RDAP Response traversal Keeps the familiar look of WHOIS via the to_whois_dict method for DNS lookups

Whoisit

A Python client to RDAP WHOIS-like services for internet resources (IPs, ASNs, domains, etc.). whoisit is a simple library that makes requests to the “new” RDAP (Registration Data Access Protocol) query services for internet resource information. These services started to appear in 2017 and have become more widespread since 2020.

whoisit is designed to abstract over RDAP. While RDAP is a basic HTTP and JSON based protocol which can be implemented in a single line of Python with requests the bootstrapping (which RDAP service to query for what item) and extracting useful information from the RDAP responses is extensive enough that a library like this is useful.

Ruby

RDAP

A minimal Ruby client to query RDAP APIs though a bootstrap server. No dependencies, no caching or bootstrap file (the query is routed through a bootstrap server first).

Rust

ICANN RDAP Client Library

This is a command-line interface (CLI) client for the Registration Data Access Protocol (RDAP) written and sponsored by the Internet Corporation for Assigned Names and Numbers (ICANN). RDAP is standard of the IETF, and extensions to RDAP are a current work activity of the IETF’s REGEXT working group. More information on ICANN’s role in RDAP can be found here.

rdap_client

Async and fast RDAP client and parser for Rust.

  • Package Information: https://crates.io/crates/rdap_client
  • Repository: https://github.com/JakubOnderka/rdap_client
  • Documentation: https://docs.rs/rdap_client/0.2.0
  • License: BSD 2-Clause
  • Features:
    • Supported Standards:
      • RFC 7480: HTTP Usage in the Registration Data Access Protocol (RDAP)
      • RFC 7482: Registration Data Access Protocol (RDAP) Query Format
      • RFC 7483: JSON Responses for the Registration Data Access Protocol (RDAP)
      • RFC 8056: Extensible Provisioning Protocol (EPP) and Registration Data Access Protocol (RDAP) Status Mapping
      • RFC 8521: Registration Data Access Protocol (RDAP) Object Tagging
      • RDAP JSON Values
    • Supported Extensions
      • fred
      • cidr0
      • arin_originas0
      • rdap_objectTag (RFC 8521)

test_friendly_rdap_client

This is essentially a version of the original rdap_client with a few extra sprinkles to make it a bit easier for me to wire up rdap_client in integration tests.

I initially attempted to keep the code as close to upstream as possible but, unfortunately, crates.io either did not like the way the Cargo.toml was set up or (more likely) I was doing something stupid.

Typescript

RDAP Check

A simple library and command-line tool to check domain name availability in bulk using the RDAP protocol, a simple protocol meant to replace WHOIS.