Skip to content

A very fast (40+ Gbit/s) pixelflut server written in C with full IPv6 support

License

Notifications You must be signed in to change notification settings

LeoDJ/shoreline

 
 

Repository files navigation

Shoreline

A very fast pixelflut server with full IPv6 support written in C

Compiling

Dependencies

  • SDL2
  • libpthread
  • libvncserver
  • libnuma (numactl)

Use make to build shoreline

Usage

By default Shoreline runs in headless mode. In headless mode all user frontends are disabled. Use shoreline -f sdl to get a sdl window for drawing

There are a few more commandline switches:

-p <port>				Port to listen on (default 1234)
-b <address>				Address to listen on (default ::)
-w <width>				Width of drawing surface (default 1024)
-h <height>				Height of drawing surface (default 768)
-r <update rate>			Screen update rate in HZ (default 60)
-s <ring size>				Size of network ring buffer in bytes (default 65536)
-l <listen threads>			Number of threads used to listen for incoming connections (default 10)
-f <frontend,[option=value,...]>	Frontend to use as a display. May be specified multiple times. Use -f ? to list available frontends and options
-d					Disable	display of repo url (https://github.com/TobleMiner/shoreline) in upper left corner

Frontend options

When specifying a frontend frontend-specific options may be passed to the frontend. For example the VNC frontend can be configured to use a nonstandard port:

shoreline -f vnc,port=2342

All available frontends and their options can be listed using shoreline -f ?.

Performance

Shoreline can easily handle full 10G line speed traffic on half way decent hardware (i7-6700, 32 GB dual channel DDR4 memory @2400 MHz)

On more beefy hardware (2x AMD EPYC 7821, 10x 8GB DDR4 ECC memory @2666 MHz, 6 memory channels) we are at about 37 Gbit/s

These results were obtained using Sturmflut as a client

About

A very fast (40+ Gbit/s) pixelflut server written in C with full IPv6 support

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.7%
  • Makefile 1.3%