poka.sh

Docs

QOI

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

QOI Image Preview.

At a glance

Original creator Dominic Szablewski
First published 2021
Purpose Fast lossless compression of 24-bit RGB and 32-bit RGBA images, simpler than PNG.
Extensions .qoi
Poka parser poka-qoi
Viewer poka-image-with-meta-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B1 Complete (see Breadth tiers)

How much Poka reads

B1 Complete. Everything the format defines that a reader would see is decoded, in every version Poka claims. Anything not decoded is immaterial and listed.

Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-qoi/src/lib.rs (header parse, full chunk-stream decode of INDEX, DIFF, LUMA, RUN, RGB and RGBA ops, end-marker check, PNG re-encode) and tests/samples.rs (every corpus file fills exactly width x height pixels; one file lacks its end marker); corpus: 10 RGB, 4 RGBA sRGB, 1 RGBA linear. Covers QOI 1.0, the only version.

What Poka does not read

  • colourspace byte (sRGB or linear) is reported but not applied when drawing; the viewer treats it as sRGB (immaterial)
  • files over the 96 MiB planned decode budget or 30000 px per side get metadata only

Background

Wikipedia says the format was announced on 24 November 2021, that the specification is a single page and that the author put it in the public domain (CC0). A file is a 14-byte header (magic qoif, width, height, channels, colour space), a stream of QOI_OP chunks and an 8-byte end marker. Poka decodes it in the module, because the image crate is built without its QOI codec, and shows it as a PNG. It stops at the pixel count from the header, so a file without the end marker still decodes in full.

Versions

Version Identifier Poka Note
QOI 1.0 qoif Read Specification of 5 January 2022 (Wikipedia).

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • image (used; MIT OR Apache-2.0; Rust)
  • qoi (candidate; MIT OR Apache-2.0; Rust; https://github.com/aldanor/qoi-rust) — Pure safe Rust QOI encoder/decoder, no_std capable; dedicated crate if the image crate's QOI support is not wanted.

Sources