Formats and Encodings

qip intentionally chooses old & boring open formats:

For qip's one-input/one-output component model, stable interchange formats make QIP components more reusable.

Preferred formats #

Current formats directly supported by a qip command or supported by this repo’s modules in components/:

Examples:

Tradeoffs:

Encodings #

Formats and encodings are at different layers:

qip currently supports these encodings:

UTF-8 is a valid subset of raw bytes, so a UTF-8 Content output may feed a raw-bytes Content input. The reverse is rejected because arbitrary bytes are not guaranteed to be valid UTF-8.

RGBA32Float tiles are not a subtype of Content bytes even though their storage lives in Wasm linear memory. A mixed run pipeline crosses that boundary only through the host's explicit image bridge: image/bmp raw bytes are decoded to RGBA32Float tiles for a contiguous Tile group, then encoded back to image/bmp raw bytes for the next Content step.

Why these defaults:

Quick Decision Guide #

If you need:

When not to use these defaults #