You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Norwin 2c3af24f9c
Merge pull request #9 from SpeckiJ/contrib
1 year ago
benchmarks more gifs & stupid jokes 2 years ago
contrib readd testscript 1 year ago
pixelflut speed up command generation 2 years ago
render repl: add scale, rotate 1 year ago
rpc Merge pull request #9 from SpeckiJ/contrib 1 year ago
.gitignore add binary to gitignore 4 years ago update ideas & readme 2 years ago
LICENSE Initial commit 4 years ago update ideas & readme 2 years ago
go.mod Update go.mod 1 year ago
go.sum Add and go.sum 1 year ago
main.go add -hevring-preview flag 1 year ago

🌊🌊🌊 Hochwasser 🌊🤽🌊

Highly efficient distributed Pixelflut client.

  • Sends static images, text, generated patterns (animations upcoming)
  • REPL enables fast iterations
  • CnC server + client architecture (it's webscale!) (can also run in a single process)
  • Faster than sturmflut (in some benchmarks at least)
  • No dependencies (pixelflut apparently was considered a primary use case in the design of golang's stdlib 👍)


Pixelflut endlich durchgespielt.

  • Steffen Cybert

N-no more micro-ddosing: bring on ssome Hochwasser and exppperience colors never seen befffore!1!

  • Morty

Hochwasser brings back the D in social DDoSing! Man, I forgot which one..

  • Doc Brown

build / install

  1. have a go installation >= 1.12
  2. go get
  3. go install

The help texts may be lacking, it's recommended to read rpc/repl.go.


Look at the subpackage, it contains the performance sensitive core.

The code is getting somewhat bloatedenterprise-ready, so if you want to quickly render a fun thing, it may be easier to just build a separate executable on top of pixelflut.Flut(), than to extend Hochwasser.


The following benchmark was run on a max-spec X280 against version d4c574b.

I could not figure out what the performance bottleneck is, but it doesn't seem to be CPU limited, as turbo-boost doesn't kick in.

To reproduce, run the following commands in separate shells:

iperf -s -p 1234
go run main.go -image benchmark/test.png -connections 10

screenshot: 55 Gbps of hochwasser

55 Gbps on average! 🌊🌊🌊

sturmflut (./sturmflut benchmark/test.png -t 10, version 8ec6ee9) managed to get 48 Gpbs throughput on this system.

Hint: Benchmarking throughput against the pixelnuke server is pointless, as performance is then CPU-limited to ~1 Gbps by the server. Using iperf removes the server limitation. This also means that these metrics of several Gbps are far higher than realworld scenarios.

future ideas

see IDEAS.