No description
Find a file
Noa Aarts 6c817759eb
flake.lock: Update
Flake lock file updates:

• Updated input 'fenix':
    'github:nix-community/fenix/b135535125e24270dddddc8cfab455533492e4ad?narHash=sha256-2YAnVU67qimQGO71rCBWcv7RrRK5gYgysXe3NVomuwQ%3D' (2024-10-10)
  → 'github:nix-community/fenix/d6a9ff4d1e60c347a23bc96ccdb058d37a810541?narHash=sha256-Jkqaw9O7WXTf5SHrK7xr9HpVU/mEPVg0Sp6s3AENC90%3D' (2024-10-15)
• Updated input 'fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/0fb804acb375b02a3beeaceeb75b71969ef37b15?narHash=sha256-QFPMazeiGLo7AGy4RREmTgko0Quch/toMVKhGUjDEeo%3D' (2024-10-09)
  → 'github:rust-lang/rust-analyzer/0319586ef2a2636f6d6b891690b7ebebf4337c85?narHash=sha256-BOCZ5osPOMh2BPHnkK4sVdTGj7sn47rBn1nxjrzWe5U%3D' (2024-10-14)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
  → 'github:nixos/nixpkgs/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c?narHash=sha256-nsNdSldaAyu6PE3YUA%2BYQLqUDJh%2BgRbBooMMekZJwvI%3D' (2024-10-14)
2024-10-18 16:49:38 +02:00
.github/workflows fix: rust.yml 2024-10-05 16:31:17 +02:00
.vscode initial commit 2024-07-11 19:05:37 +02:00
src refactor: split into more logical files 2024-10-18 01:56:23 +02:00
.envrc feat: true async 2024-07-12 15:59:27 +02:00
.gitignore feat: add periodic image saving 2024-10-11 16:05:16 +02:00
Cargo.lock refactor: split into more logical files 2024-10-18 01:56:23 +02:00
Cargo.toml refactor: split into more logical files 2024-10-18 01:56:23 +02:00
config.toml refactor: split grid into mod 2024-07-25 16:45:15 +02:00
flake.lock flake.lock: Update 2024-10-18 16:49:38 +02:00
flake.nix feat: add nix output 2024-10-05 10:12:28 +02:00
protocol.md initial commit 2024-07-11 19:05:37 +02:00
README.md feat: swap from u16_le to u16 2024-10-10 09:37:43 +02:00

Flurry is a pixelflut compatible server written in rust with a focus on minimizing latency while keeping high performance.

Protocols

Multiple protocols are supported:

  • Text: The default protocol, it is compliant with pixelflut but it defines some extra commands
    • CANVAS <id>: used to change to a completely seperate canvas, the amount and size is defined by the host
    • PROTOCOL <protocol name>: used to change to different protocols, the useable names are:
      • text: goes to the Text protocol
      • binary: goes to the Binary protocol
  • Binary: A binary analog to the text version, about twice as efficient with bandwidth, the commands are
    • size: 0x73 <u8 canvas> -> <u16 x> <u16 y>
    • help: 0x68 -> help message (in UTF-8)
    • get pixel: 0x20 <u8 canvas> <u16 x> <u16 y> -> <u8 red> <u8 green> <u8 blue>
    • set pixel rgb: 0x80 <u8 canvas> <u16 x> <u16 y> <u8 red> <u8 green> <u8 blue>
    • blend pixel rgba: 0x81 <u8 canvas> <u16 x> <u16 y> <u8 red> <u8 green> <u8 blue> <u8 blend>
    • set pixel grayscale: 0x82 <u8 canvas> <u16 x> <u16 y> <u8 white>