8000 GitHub - SpeckiJ/Hochwasser: Highly efficient client for Pixelflut (https://cccgoe.de/wiki/Pixelflut)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

SpeckiJ/Hochwasser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌊🌊🌊 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 👍)

testimonials

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 github.com/SpeckiJ/Hochwasser
  3. go install github.com/SpeckiJ/Hochwasser

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

hacking

Look at the github.com/SpeckiJ/Hochwasser/pixelflut 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.

benchmark

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 127.0.0.1:1337 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.

About

Highly efficient client for Pixelflut (https://cccgoe.de/wiki/Pixelflut)

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  
0