Quicx
§ 01.03Getting Started

Configuration

A Quicx daemon reads its entire runtime shape from a single quicx.conf file. Every number is exact — block counts, pool share, port — and is resolved before a byte of task traffic moves.

quicx.conf
# Quicx config
[server]
port = 16381

[allocator]
pool_size = 1048576
class = 32,10
class = 64,25
class = 128,25
class = 256,20
class = 512,12
class = 1024,8
NOTEDefault configuration
This is the built-in default. When you run quicx start without a --config flag, the daemon uses these exact values — no file needed to get started.

[server]

port
TCP port the daemon binds to. Producers and workers both dial the same port — routing is decided by the first message they send (MSG_SUBMIT vs MSG_READY). Default: 16381.

[allocator]

The allocator block is parsed directly into the PMAD initializer. You own every byte of the pool — no hidden reserves, no growth. All arithmetic is performed at startup so the daemon either boots with the layout you asked for or refuses to start.

pool_size
Total bytes reserved via a single mmap call. Default is 1048576 (1 MiB). The allocator never grows past this number — if you exhaust it, new MSG_SUBMIT frames are rejected with MSG_ERROR 0x01 (queue full).
class = SIZE,PCT
Declares one size class: SIZE is the block size in bytes, PCT is the percentage of the pool that belongs to that class. Declare the classes in ascending SIZE order. The percentages must sum to 100; if they don’t, the daemon refuses to start.
NOTEHow the example pool is carved up
pool_size = 1 MiB with the six classes above resolves to exactly 3 276 · 32B + 4 096 · 64B + 2 048 · 128B + 819 · 256B + 245 · 512B + 82 · 1024B — all computed before the daemon accepts its first connection.

Tuning rules of thumb

WorkloadRecommended shapeWhy
Short JSON payloads (webhooks, emails)32, 64, 128Most MSG_SUBMIT frames land between 40–120 bytes; three tight classes eat the long tail with <5 % slack.
Mixed media (thumbnails, ML prompts)128, 512, 2048Two orders of magnitude spread — weight the biggest class heaviest.
Uniform binary blobsone class at 100 %Zero internal fragmentation. Highest throughput — see the PMAD benchmarks.
HEADS UPValidation is strict on purpose
If pool_sizeis not a multiple of every declared class size, or if the percentages don’t sum to 100, the daemon exits with a precise error pointing at the offending line. This is deliberate — Quicx refuses to start in a “mostly-correct” state.