A lightning-fast port scanner that finds open ports in seconds.
A

A lightning-fast port scanner that finds open ports in seconds.

A lightning-fast port scanner that finds open ports in seconds.

20,022 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

RustScan: Find Open Ports in Seconds, Not Minutes

If you've ever run a network scan, you've felt the wait. Traditional port scanners are thorough, but they can feel like watching paint dry, especially when you're iterating quickly or scanning large ranges. What if you could get those results almost as soon as you hit enter?

Enter RustScan. This isn't just another incremental improvement. It's a port scanner built in Rust that leverages asynchronous I/O to deliver results at a blistering pace. It’s the tool you reach for when you need to know what's open, and you need to know now.

What It Does

In essence, RustScan is a modern port scanner. You give it a target—a single IP, a range, or a hostname—and it rapidly discovers which TCP ports are open. Its real magic is in its workflow: it performs an initial ultra-fast scan to find open ports, and then can automatically pipe those ports into another tool like nmap for detailed service interrogation. This combines the best of both worlds: speed and depth.

Why It's Cool

The "lightning-fast" claim isn't just marketing. Here’s what makes RustScan stand out:

  • Raw Speed: Built on Rust's async-std library, it can fire off thousands of packets concurrently. It often completes scans in seconds where other tools take minutes. The default is to scan the top 1000 ports, but you can scan all 65535 ports faster than you'd think possible.
  • Intelligent Pipeline: Instead of trying to be everything, RustScan excels at the discovery phase. Its -g flag lets you take the list of open ports it finds and feed them directly into nmap for version detection, scripting, and deeper analysis. This RustScan -> Nmap pipeline is a killer feature.
  • Developer-Friendly UX: It has sensible defaults, clear output, and useful features like customizable batch sizes and scan delays to avoid tripping IDS/IPS. The tool feels built by someone who actually uses it.
  • Adaptability: Need to scan a massive range? Adjust the batch size. Dealing with a sensitive network? Tune the delay. It gives you the knobs to turn without being overwhelming.

How to Try It

Getting started is straightforward. The easiest method is via Docker:

docker run -it --rm --name rustscan rustscan/rustscan:latest <target>

Replace <target> with an IP (e.g., 192.168.1.1) or hostname.

For native installation, you can use package managers or grab a pre-built binary from the

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 27, 2025