1个不稳定版本

0.0.1 2022年8月18日

#7 in #pixelflut

GPL-3.0许可证

105KB
2K SLoC

pixelpwnr服务器

注意:该项目处于原型阶段,正在开发和测试中。稍后将进一步优化此服务器以实现高性能。

Rust语言编写的闪电般的GPU加速pixelflut (视频) 服务器。

功能

  • 闪电般的pixelflut渲染
  • GPU加速
  • 高度并发,支持多个连接
  • Linux、Windows和macOS
  • 可选的PX二进制命令以降低带宽需求(默认启用)。

安装

安装需要Git和Rust cargo。使用rustup安装Rust的最新版本。

然后,使用以下命令克隆和安装pixelpwnr-server

# 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

或者直接构建并调用二进制文件(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

二进制PX命令

此实现向协议中添加了一个新的命令,布局如下

PBxyrgba

其中

  • xy是Little-Endian u16值,描述要设置的像素的X和Y坐标。
  • rgba是单个字节的值,描述要设置的像素的R、G、B和A颜色分量。
  • 需要注意的是,此命令不以换行符结尾。添加换行符只会使服务器将该换行符解释为空命令(这是可以的)。

如果您希望禁用二进制像素命令,请向cargo传递--no-default-features标志

要求

  • Rust (MSRV v1.58.1或更高版本)
  • 构建基本工具(Ubuntu软件包:build-essential
  • freetype2开发文件(Ubuntu软件包:libfreetype6-dev

性能

以下是一些有助于提高pixelflut服务器在高负载下的性能的要点:

  • 使用--release构建。
  • 使用尽可能多的核心的CPU。
  • 使用快速以太网连接,最好是10Gb/s+。
  • 使用专用显卡。
  • 使用Linux机器。
  • 增加Linux上的文件描述符限制
  • 退出尽可能多的其他运行中的程序。

相关项目

许可证

本项目采用GNU GPL-3.0许可证发布。更多信息请查看LICENSE文件。

依赖项

~21–34MB
~504K SLoC