# resolverx ๐ง โก
[](https://github.com/evozeus/resolverx/actions)
[](https://crates.io/crates/resolverx)
[](LICENSE)
[](https://www.rust-lang.org)
A fast, async DNS + RDAP resolver written in Rust โ supporting **single** and **bulk** queries with output in **table**, **JSON**, or **NDJSON** formats.
---
## ๐ง Installation
### From crates.io (once published)
```bash
cargo install resolverx
```
### From source (current dev build)
```bash
git clone https://github.com/evozeus/resolverx.git
cd resolverx
cargo build --release
./target/release/resolverx --help
```
---
## ๐ Usage
### Single query
```bash
resolverx query example.com
resolverx query example.com --format json
resolverx query example.com --rdap
resolverx query 1.1.1.1 --rdap
```
### Bulk mode
Create a file of targets:
```bash
printf "example.com\ncloudflare.com\n1.1.1.1\nAS13335\n" > targets.txt
```
Run in bulk:
```bash
resolverx bulk targets.txt --rdap --format ndjson -v
```
---
## ๐งฉ Features
- โก **Asynchronous DNS resolution** (A, AAAA, MX, NS, TXT, CNAME)
- ๐ **Integrated RDAP client** with caching
- ๐ง **Automatic type detection** (domain, IP, ASN)
- ๐ฆ **Multi-target bulk mode** with concurrency control
- ๐งพ **Multiple output formats:** table / JSON / NDJSON
- ๐ **Verbose diagnostics** for tracing queries
- ๐งฐ **CI-ready project:** `fmt`, `clippy`, `build`, and smoke tests on every push
---
## ๐ง Example Outputs
### Table
```bash
resolverx query example.com
```
```
resolverx โ DNS results
Name: example.com
Elapsed: 89 ms
A: 23.215.0.138, 23.220.75.245, 23.192.228.84, 23.192.228.80, 23.215.0.136
AAAA: 2600:1408:ec00:36::1736:7f24, 2600:1406:bc00:53::b81e:94c8, ...
```
### JSON
```bash
resolverx query example.com --rdap --format json
```
```json
{
"name": "example.com",
"a": ["23.215.0.138", "23.215.0.136"],
"ns": ["a.iana-servers.net.", "b.iana-servers.net."],
"rdap": {
"handle": "2336799_DOMAIN_COM-VRSN",
"events": [
{"eventAction": "registration", "eventDate": "1995-08-14T04:00:00Z"}
]
}
}
```
---
## ๐งโ๐ป Development
```bash
cargo fmt
cargo clippy -- -D warnings
cargo run -- query example.com
cargo test
```
### CI
ResolverX uses GitHub Actions (`.github/workflows/ci.yml`) to:
- enforce formatting and linting
- build and run smoke tests on push/PR
- prepare for automated releases
---
## ๐ฆ Publishing (maintainers only)
```bash
cargo publish --dry-run
git tag v0.1.0
git push origin v0.1.0
```
---
## ๐งญ Roadmap
**v2.0 ideas**
- Recursive / authoritative path tracing
- DNSSEC validation indicators
- DNS + HTTP timing correlation
- Interactive TUI mode (with `ratatui`)
---
## ๐งโ๐คโ๐ง Contributing
Contributions, issues, and feature requests are welcome!
Open a PR or discussion at **[github.com/evozeus/resolverx](https://github.com/evozeus/resolverx)**.
---
## ๐ License
MIT ยฉ 2025 Evozeus