All Projects β†’ timvisee β†’ pixelpwnr-server

timvisee / pixelpwnr-server

Licence: GPL-3.0 license
πŸŽ† Blazingly fast GPU accelerated pixelflut server written in Rust.

Programming Languages

rust
11053 projects
GLSL
2045 projects

Projects that are alternatives of or similar to pixelpwnr-server

pixelpwnr
πŸŽ† Insanely fast pixelflut client for images and animations written in Rust.
Stars: ✭ 50 (+16.28%)
Mutual labels:  flood, pixelflut, pixelpwnr
overload
πŸ“‘ Overload DoS Tool (Layer 7)
Stars: ✭ 167 (+288.37%)
Mutual labels:  flood
Tokio Rustls
Asynchronous TLS/SSL streams for Tokio using Rustls.
Stars: ✭ 143 (+232.56%)
Mutual labels:  tokio
L3-37
Yet another Tokio connection pooler. May cause robot uprising.
Stars: ✭ 53 (+23.26%)
Mutual labels:  tokio
Rust S3
Rust library for interfacing with AWS S3 and other API compatible services
Stars: ✭ 177 (+311.63%)
Mutual labels:  tokio
fubuki
Simple VPN implemented using rust
Stars: ✭ 85 (+97.67%)
Mutual labels:  tokio
Tarpc
An RPC framework for Rust with a focus on ease of use.
Stars: ✭ 1,934 (+4397.67%)
Mutual labels:  tokio
DDoS-Script
A script written in perl for ddos ​​with automatic detection of open and vulnerable port that gives up to 1.5 gb packages / s
Stars: ✭ 30 (-30.23%)
Mutual labels:  flood
tokio-imap
Tokio-based IMAP implementation
Stars: ✭ 110 (+155.81%)
Mutual labels:  tokio
meio
Rust actors alternative to Erlang/OTP
Stars: ✭ 152 (+253.49%)
Mutual labels:  tokio
lnx
⚑ Insanely fast, 🌟 Feature-rich searching. lnx is the adaptable, typo tollerant deployment of the tantivy search engine. Standing on the shoulders of giants.
Stars: ✭ 844 (+1862.79%)
Mutual labels:  tokio
Async Tungstenite
Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation
Stars: ✭ 207 (+381.4%)
Mutual labels:  tokio
delay-timer
Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible scheduling, and dynamic add/cancel/remove is supported.
Stars: ✭ 257 (+497.67%)
Mutual labels:  tokio
Convey
Layer 4 load balancer with dynamic configuration loading
Stars: ✭ 168 (+290.7%)
Mutual labels:  tokio
ldap3
A pure-Rust LDAP library using the Tokio stack
Stars: ✭ 161 (+274.42%)
Mutual labels:  tokio
Redis Async Rs
A Rust client for Redis, using Tokio
Stars: ✭ 141 (+227.91%)
Mutual labels:  tokio
mqtt-broker
A tokio-based MQTT v5 broker written in pure Rust [WIP]
Stars: ✭ 110 (+155.81%)
Mutual labels:  tokio
tsukuyomi
Asynchronous Web framework for Rust
Stars: ✭ 81 (+88.37%)
Mutual labels:  tokio
silencebot
Silence Bot for your Telegram supergroups
Stars: ✭ 19 (-55.81%)
Mutual labels:  flood
abstract-ns
Abstract name service traits for rust
Stars: ✭ 17 (-60.47%)
Mutual labels:  tokio

pixelpwnr server

Note: This project is in the prototype phase, and is in development and tested with. Further optimization of this server for high performance use will be done at a later time.

A blazingly fast GPU accelerated pixelflut (video) server in Rust.

Features

  • Blazingly fast pixelflut rendering
  • GPU accelerated
  • Highly concurrent, to support many connections
  • Linux, Windows and macOS
  • Optional binary PX command for reduced bandwidth requirements (enabled by default).

Installation

For installation, Git and Rust cargo are required. Install the latest version of Rust with rustup.

Then, clone and install pixelpwnr-server with:

# Clone the project
git clone https://github.com/timvisee/pixelpwnr-server.git
cd pixelpwnr-server

# Install pixelpwnr server
cargo install --path server -f

# Start using pixelpwnr server
pixelpwnr-server --help

# or run it directly from Cargo
cargo run --bin pixelpwnr-server --release -- --help

Or just build it and invoke the binary directly (Linux/macOS):

# Clone the project
git clone https://github.com/timvisee/pixelpwnr-server.git
cd pixelpwnr-server

# Build the project (release version)
cargo build --release

# Start using pixelpwnr-server
./target/release/pixelpwnr-server --help

The binary PX command

This implementation adds a new command to the protocol.

This type of command is enabled by default, but can be disabled by passing the --no-binary flag to pixelflut-server when running the exectuable.

The command is laid out as follows:

PBxyrgba

where:

  • x and y are Little-Endian u16 values describing the X and Y coordinate of the pixel to set.
  • r, g, b and a are single-byte values describing the R, G, B, and A components of the color to set the pixel to.
  • It is important to note that this command does not end in a newline. Appending a newline simply causes the server to interpret that newline as an empty command (which is fine).

Requirements

  • Rust (MSRV v1.58.1 or higher)
  • Build essentials (Ubuntu package: build-essential)
  • freetype2 development files (Ubuntu package: libfreetype6-dev)

Performance

Here are some points that help with the pixelflut server performance, under heavy load:

  • Use a --release build.
  • Use a CPU with as many cores as possible.
  • Use a fast Ethernet connection, preferably 10Gb/s+.
  • Use a dedicated graphics card.
  • Use a Linux machine.
  • Increase the file descriptor limit (on Linux).
  • Quit as many other running programs.

Relevant projects

License

This project is released under the GNU GPL-3.0 license. Check out the LICENSE file for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].