subfaster

module
v2.16.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 21, 2026 License: MIT

README

subfaster

Fast passive subdomain enumeration — a speed-focused fork of subfinder.

subfaster

subfaster is a fork of subfinder tuned for one thing: getting a clean, sorted list of subdomains as fast as possible. It keeps subfinder's passive-source engine but changes the defaults, trims the startup cost, and drops weight so a typical run finishes in seconds with no noise.

It installs as its own binary with its own config directory, so it runs side by side with an existing subfinder install without colliding.

What's different from subfinder

Faster by default

  • Curated fast sources are the default. A run uses seven fast, keyless sources (thc, submd, dnsmelvin, shodanct, rapiddns, hackertarget, sitedossier) instead of every source. Use -all for the full set, or -fast=false for subfinder's original default selection.
  • HTTP keep-alive. Connections are reused instead of a fresh TCP+TLS handshake per request. Sources that paginate heavily (e.g. thc) drop from ~32s to ~11s on large domains.
  • Update check is off by default. subfinder makes a blocking network call to its update registry on every startup (~1s). subfaster skips it, so startup is ~30ms. Re-enable with -duc=false.
  • Lower default timeout (10s, was 30s) and Cloudflare-only resolvers (1.1.1.1, 1.0.0.1) for -active, instead of a long list that includes slow resolvers.
  • Preflight probe on block-prone sources. sitedossier and hackertarget are checked with a cheap 3s homepage probe first — if your IP is blocked they bail in 3s instead of hanging the whole run to the timeout.

Quieter, cleaner output

  • -silent is the default — only subdomains go to stdout. Pass -v (or -silent=false) for logs.
  • Output is sorted alphabetically.
  • No ASCII banner.
  • Reorganized, terse -h with examples, grouped by importance.
  • Honest source errors. When a free source hits its quota (hackertarget) or a captcha (sitedossier), it's reported as an error in -stats instead of silently returning zero.

Removed / changed

  • No rate-limit flags. -rl / -rls and the rate-limiting engine are gone.
  • crtsh is HTTP/JSON only. The crt.sh Postgres backend (and its driver dependency) was removed.
  • Fixed User-Agent instead of a random one per request.

Slimmer

Dropped direct dependencies: json-iterator/go (→ stdlib encoding/json), lib/pq, corpix/uarand, rs/xid, hako/durafmt, golang.org/x/exp, and the rate-limit library.

Installation

subfaster requires go1.24+:

go install -v github.com/melvinsh/subfaster/v2/cmd/subfaster@latest

Usage

subfaster -h

Common examples:

# Enumerate one domain (fast sources, only subdomains printed)
subfaster -d example.com

# Many domains from a file, saved to out.txt
subfaster -dL domains.txt -o out.txt

# Resolve and keep only live subdomains, with their IPs
subfaster -d example.com -active -oI

# Use every source (many need API keys, see below)
subfaster -d example.com -all

# JSON output including which source found each subdomain
subfaster -d example.com -oJ -cs

Run subfaster -h for the full, grouped flag list.

Configuration

subfaster keeps its own config so it never clashes with subfinder:

  • Config directory: $HOME/.config/subfaster/ (config.yaml, provider-config.yaml)
  • Environment overrides: SUBFASTER_CONFIG, SUBFASTER_PROVIDER_CONFIG
  • API keys can also be supplied via <SOURCE>_API_KEY environment variables (e.g. SHODAN_API_KEY).

Many sources (used with -all) require API keys. The provider-config.yaml format is identical to subfinder's — see the upstream post-install configuration docs.

Go library

subfaster can be used as a library; a minimal example is in examples/main.go.

Credits

subfaster is a fork of subfinder by ProjectDiscovery — all credit for the original tool and its source integrations goes to them and the upstream community (THANKS.md).

Read the usage disclaimer at DISCLAIMER.md.

Directories

Path Synopsis
cmd
subfaster command
pkg
passive
Package passive provides capability for doing passive subdomain enumeration on targets.
Package passive provides capability for doing passive subdomain enumeration on targets.
resolve
Package resolve is used to handle resolving records It also handles wildcard subdomains and rotating resolvers.
Package resolve is used to handle resolving records It also handles wildcard subdomains and rotating resolvers.
runner
Package runner implements the mechanism to drive the subdomain enumeration process
Package runner implements the mechanism to drive the subdomain enumeration process
subscraping
Package subscraping contains the logic of scraping agents
Package subscraping contains the logic of scraping agents
subscraping/sources/alienvault
Package alienvault logic
Package alienvault logic
subscraping/sources/anubis
Package anubis logic
Package anubis logic
subscraping/sources/bevigil
Package bevigil logic
Package bevigil logic
subscraping/sources/builtwith
Package builtwith logic
Package builtwith logic
subscraping/sources/c99
Package c99 logic
Package c99 logic
subscraping/sources/censys
Package censys logic
Package censys logic
subscraping/sources/certspotter
Package certspotter logic
Package certspotter logic
subscraping/sources/chaos
Package chaos logic
Package chaos logic
subscraping/sources/commoncrawl
Package commoncrawl logic
Package commoncrawl logic
subscraping/sources/crtsh
Package crtsh logic
Package crtsh logic
subscraping/sources/digitorus
Package waybackarchive logic
Package waybackarchive logic
subscraping/sources/dnsdb
Package dnsdb logic
Package dnsdb logic
subscraping/sources/dnsdumpster
Package dnsdumpster logic
Package dnsdumpster logic
subscraping/sources/dnsmelvin
Package dnsmelvin is a source for dns.melv.in, a passive subdomain index fed by the public Certificate Transparency firehose.
Package dnsmelvin is a source for dns.melv.in, a passive subdomain index fed by the public Certificate Transparency firehose.
subscraping/sources/fofa
Package fofa logic
Package fofa logic
subscraping/sources/github
Package github GitHub search package Based on gwen001's https://github.com/gwen001/github-search github-subdomains
Package github GitHub search package Based on gwen001's https://github.com/gwen001/github-search github-subdomains
subscraping/sources/hackertarget
Package hackertarget logic
Package hackertarget logic
subscraping/sources/hudsonrock
Package hudsonrock logic
Package hudsonrock logic
subscraping/sources/intelx
Package intelx logic
Package intelx logic
subscraping/sources/leakix
Package leakix logic
Package leakix logic
subscraping/sources/merklemap
Package merklemap logic
Package merklemap logic
subscraping/sources/netlas
Package netlas logic
Package netlas logic
subscraping/sources/onyphe
Package onyphe logic
Package onyphe logic
subscraping/sources/profundis
Package profundis logic
Package profundis logic
subscraping/sources/pugrecon
Package pugrecon logic
Package pugrecon logic
subscraping/sources/quake
Package quake logic
Package quake logic
subscraping/sources/rapiddns
Package rapiddns is a RapidDNS Scraping Engine in Golang
Package rapiddns is a RapidDNS Scraping Engine in Golang
subscraping/sources/securitytrails
Package securitytrails logic
Package securitytrails logic
subscraping/sources/shodan
Package shodan logic
Package shodan logic
subscraping/sources/shodanct
Package shodanct logic
Package shodanct logic
subscraping/sources/sitedossier
Package sitedossier logic
Package sitedossier logic
subscraping/sources/thc
Package thc logic
Package thc logic
subscraping/sources/threatbook
Package threatbook logic
Package threatbook logic
subscraping/sources/urlscan
Package urlscan logic
Package urlscan logic
subscraping/sources/virustotal
Package virustotal logic
Package virustotal logic
subscraping/sources/waybackarchive
Package waybackarchive logic
Package waybackarchive logic
subscraping/sources/whoisxmlapi
Package whoisxmlapi logic
Package whoisxmlapi logic
subscraping/sources/windvane
Package windvane logic
Package windvane logic

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL