ported to Go language from Python.
The main difference from Python version layed in Golang architecture for concurrency: the goroutines. main.py runs a new thread for each connection in the connection pool so it uses hundreds and thousands of threads. hulk.go just uses lightweight goroutines that used only tens of threads (commonly golang runtime started one thread for CPU core + several service threads). This architecture allows golang version better consume resources and got much higher connection pool on the same hardware than Python version can.
This tool targeted for stress testing and may really down badly configured server or badly made app. Use it carefully.
Usage :
โฅ $ python3 main.py <url>
Examples :
โฅ $ python main.py https://example.com
โฅ $ main.py -site http://example.com 2>/dev/null
โฅ $ SGBMAXPROCS=4096 main.py -site http://example.com 2>/tmp/errlog