Repository navigation
FAQ
Unsigned Rust CLIs sometimes get heuristic hits (e.g. Defender “generic”). Release builds are plain GitHub Actions artifacts (no UPX). Options:
- Build yourself:
cargo build -p dns-cli --release - Allowlist after verifying release checksums (
SHA256SUMS.txt)
Next to testdata/ and config/ from the source zip (or a full clone). Running from an empty folder will fail doctor / profiles.
Sample profile pointing at *.example.com. Edit config/profiles.json (or copy from profiles.example.json) for real domains / keys.
No. Scan + generate work without it. Slipnet is optional e2e; fetch is opt-in. See docs/SLIPNET.md.
Use --preset low (or --stream):
- Reads the file line-by-line (does not load the whole list into RAM)
- Keeps only a bounded number of tasks in flight
- Writes each result to disk as it arrives
Peak RAM is roughly O(workers + unique working IPs), not O(file size). That does not make a 10M scan “instant” on one core — it is still network-bound and needs free disk for dns_all_results.txt.
dns-cli scan huge.txt --preset low --quiet
dns-cli scan huge.txt --preset low --limit 50000 --quiet
Details: docs/MEMORY.md.
Avoid --preset normal (no stream) and FFI scanner_run_from_file on huge lists — those still collect results in memory.
See docs/DOCKER.md.
Yes — scanner_core shared library (Windows DLL / Linux .so / macOS .dylib / Android .so). Best for small inputs; huge lists should use the CLI stream path. See docs/FFI_PYTHON.md.
Not allowed under the project LICENSE. Personal / educational / research only.
dnstt-kit