MCPcopy Index your code
hub / github.com/Edu4rdSHL/rusolver

github.com/Edu4rdSHL/rusolver @0.10.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.10.2 ↗ · + Follow
11 symbols 17 edges 6 files 1 documented · 9% updated 11mo ago0.10.2 · 2025-07-28★ 1712 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Rusolver

Fast DNS resolver written in Rust. Works on Linux, Windows, macOS, Android, Aarch64, ARM and possibly in your oven.

Goal

Offer the community an efficient host resolution tool.

Performance, speed and accuracy

Rusolver is very resource friendly, you can use up to 1000 threads in an single core machine and this will work without any problem, the bottleneck for this tool is your network speed. By default, Rusolver is able to perform resolution for ~1532 hosts per second in good network conditions (tested in an AWS machine). Additionally the tool does a double-check by default for resolved hosts against Cloudflare, Google, Quad9, OpenDNS, Verisign, UncensoredDNS and dns.watch DNS, with that algoritm the possibility to get an false-positive is null.

Demo

The files used in the demo are here. hosts.txt is the list of hosts to perform resolution and the resolved.txt are the ones that Rusolver found as active.

asciicast

Installation

Using precompiled binaries.

Download the asset from the releases page according to your platform.

Using the source code.

  1. You need to have the latest stable Rust version insalled in your system.
  2. Clone the repo or download the source code, then run cargo build --release.
  3. Execute the tool from ./target/release/rusolver or add it to your system PATH to use from anywhere.

Optionally you can just use cargo install rusolver

Using the AUR packages. (Arch Linux)

rusolver can be installed from available AUR packages using an AUR helper. For example,

yay -S rusolver

If you prefer, you can clone the AUR packages and then compile them with makepkg. For example,

git clone https://aur.archlinux.org/rusolver.git && cd rusolver && makepkg -si

Usage

  • By default we only show the resolved hosts
cat hosts.txt | rusolver
  • If you want to see the discovered IP addresses:
cat hosts.txt | rusolver -i

You can tune the --timeout and -t/--threads options according to your needs. See rusolver --help

Core symbols most depended-on inside this repo

return_tokio_asyncresolver
called by 2
src/dnslib.rs
return_file_lines
called by 1
src/utils.rs
detect_wildcards
called by 1
src/utils.rs
print_domain_data
called by 1
src/utils.rs
return_resolver_opts
called by 1
src/utils.rs
return_hosts_data
called by 1
src/dnslib.rs
main
called by 0
src/main.rs
return_cname_data
called by 0
src/dnslib.rs

Shape

Function 8
Class 3

Languages

Rust100%

Modules by API surface

src/utils.rs4 symbols
src/dnslib.rs3 symbols
src/structs.rs2 symbols
src/main.rs1 symbols
src/args.rs1 symbols

For agents

$ claude mcp add rusolver \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact