Skip to content

Commit d629195

Browse files
committed
docs: rewrite intro around the shared http layer and concurrency
1 parent 33961a5 commit d629195

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,32 @@
1515

1616
**[install](#install) · [usage](#usage) · [modules](#modules) · [docs](docs/) · [contribute](#contribute)**
1717

18+
*fast, concurrent recon to exploitation in one binary. every scanner shares one connection-pooled http client.*
19+
1820
</div>
1921

2022
---
2123

2224
## what is sif?
2325

24-
sif is a modular pentesting toolkit written in go. it's designed to be fast, concurrent, and extensible. run multiple scan types against targets with a single command.
26+
sif is a recon and exploitation scanner that runs the whole chain in one binary: subdomain enum, port scan, crawler, nuclei, framework/cve detection, js secret extraction, web-vuln probes (cors/xss/redirect), cloud and takeover checks. 25+ scan types, one command.
27+
28+
```bash
29+
sif -u https://example.com -dnslist -ports -crawl -js -framework -nuclei
30+
```
31+
32+
nuclei and colly are compiled in as libraries rather than shelled out to (there's no `exec.Command` in the tree), so it's a single static binary with no runtime dependencies and nothing to wire together.
33+
34+
every scanner runs through one shared http client and a work-stealing worker pool. `-proxy`, `-H`, `-cookie` and `-rate-limit` apply to the whole run at once, connections get pooled and reused across the scan (a single-host run reuses one connection for ~50 requests instead of dialing 50 times), and a slow host doesn't hold the rest up. that shared client is the practical reason to use it over piping a stack of separate tools together. port scanning is `connect()`-based, so rustscan and nmap are still faster at raw port scans.
35+
36+
it reads targets from stdin and prints findings one per line under `-silent`, so it composes:
2537

2638
```bash
27-
./sif -u https://example.com -headers -sh -cms -framework -git
39+
subfinder -d example.com | sif -silent -crawl -js -nuclei | notify
2840
```
2941

42+
`-diff` turns a re-scan into a monitor that only reports what changed, `-notify` posts to slack/discord/telegram/webhook, and runs export to sarif and markdown.
43+
3044
## install
3145

3246
### homebrew (macos)
@@ -49,7 +63,7 @@ paru -S sif
4963
### nix
5064

5165
```bash
52-
# nixpkgs (declarative add to configuration.nix or home-manager)
66+
# nixpkgs (declarative: add to configuration.nix or home-manager)
5367
environment.systemPackages = [ pkgs.sif ];
5468

5569
# or imperatively
@@ -84,7 +98,7 @@ cd sif
8498
make
8599
```
86100

87-
requires go 1.23+
101+
requires go 1.25+
88102

89103
### aur (manual install)
90104

0 commit comments

Comments
 (0)