craftflut/README.md

47 lines
1.4 KiB
Markdown

# craftflut
Alternative gateway implementation for https://codeberg.org/MoKe12g/Pixelflut3D
## Building
A minimum Zig version of 0.14.0 is required.
```
zig build -Doptimize=(ReleaseSafe|ReleaseFast) -Dmaterial_max_len=(<int>, default: 40)
```
## CLI options
- `--unix-socket`: Path to Unix socket to bind to and to send block updates to
- `--queue`: Block update queue capacity (default: `1024`)
- `--web-port`: Web server port
- `--web-threads`: Web server thread count (default: `1`)
## API
TODO: Classic Pixelflut TCP
### HTTP
| Path | Method | Headers | Body | Response | Description |
| ------------ | ------ | ------- | -------------------------------------------------------------------- | ------------- | --------------------------- |
| `/api/block` | `PUT` | | `{"dimension":<i32>,"x":<i32>,"y":<i32>,"z":<i32>,"material":<str>}` | `201 Created` | Enqueues given block update |
## Gateway
This application relays and batches the received block updates and sends them as CSV data to an existing Unix socket.
Connect to the socket with: `socat - UNIX:<path>`
TODO: Accept multiple clients
### Payload
Each packet is seperated by a newline (`\n`).
```
dimension,x,y,z,material
<int32>,<int32>,<int32>,<int32>,<str>
```
E.g.: `0,42,42,42,DIRT` puts a dirt block in dimension `0` (Overworld) at coordinates `42,42,42`.