Fanbase

Fanbase

48 Fandango input specifications of 12 formats: grammars that make files of a format, to share, install, combine and improve. index.json has the same for machines.

Formats

All specs

SpecWhat it isVersionStatusHow it does
bmp/bmpBMP with twelve header and depth layouts (OS/2, INFO, V3 to V5, RLE, bitfields, CMYK)1.0accepts 73%, covers 55.4%, 121/s
bmp/bmp-constraintsBMP with core, info, V4 and V5 headers and RLE8, sizes tied together with constraints1.0accepts 100%, covers 37.2%, 4.4/s
bmp/bmp-edgeBMP at 1 to 32 bits with top-down heights, short palettes and V4/V5 masks1.0accepts 100%, covers 49.2%, 0.97/s
gif/gifGIF87a and GIF89a with all extension types, local color tables and several images1.0accepts 75%, covers 51.8%, 23/s
gif/gif-boundaryGIF built from fixed edge-case values (huge screens, flag combinations, unknown extensions)1.0accepts 12%, covers 48.1%, 90/s
gif/gif-minimal1x1 GIF87a/GIF89a with valid LZW data, covering every extension block1.0accepts 100%, covers 28.3%, 56/s
heic/heicA single HEVC-coded still image in the real ISOBMFF/HEIF box layout (ftyp, meta/hdlr/pitm/iloc/iinf/infe, iprp/ipco/ispe/hvcC/pixi/colr, idat); the HEVC NAL payloads are container-correct shells, not a decodable bitstream1.0accepts 0%, covers 7.8%, 12/s
heic/heic-boundarySame as heic, with values taken from the edges of what the format allows (degenerate/overflow spatial extents, extreme HEVC profile/level bytes, a hidden-item flag, ICC-embedded colr, and the irot/imir/pasp/clap transformative properties)1.0accepts 0%, covers 5.9%, 9.4/s
heic/heic-box-sizesSix concrete file layouts (plain, extended item, transform, legacy, sequence, size-extreme) exercising ISOBMFF's zero-size ("extends to EOF") and largesize box-size conventions alongside boundary offset/length values1.0accepts 0%, covers 2.8%, 101/s
heic/heic-sequenceSame as heic, plus item references/entity grouping/protection boxes and the full timed-image-sequence (moov/trak/mdia/minf/stbl) layout used for HEIC bursts and live photos, not just a single still1.0accepts 0%, covers 2.1%, 4.3/s
jpeg/jpegBaseline grayscale 8x8 JPEG with a JFIF header1.0accepts 100%, covers 25.7%, 37/s
jpeg/jpeg-exoticJPEG with unusual features (12-bit samples, 16-bit tables, arithmetic, lossless, DNL); files do not decode1.0accepts 1%, covers 11.2%, 6.2/s
jpeg/jpeg-markersJPEG at the marker level (APPn, COM, DQT, DHT, DRI, SOF0-2, SOS); tables and scan data are random, so files rarely decode1.0accepts 9%, covers 20.0%, 14/s
jxl/jxlRaw JPEG XL codestreams with a real bit-packed header and metadata; the entropy-coded frame body is a structurally-framed stub, so files do not decode1.0accepts 0%, covers 15.7%, 19/s
jxl/jxl-framesSpells out frame internals that jxl stubs out (TOC, LFGlobal, VarDCT/Modular groups, entropy streams); uses placeholder ASCII tag bytes instead of real bit-packed encoding, so files do not decode yet1.0accepts 0%, covers 10.0%, 53/s
jxl/jxl-frames-boundarySame as jxl-frames, with values taken from the edges of what the format allows (multiple frame types, colour spaces and extension bundles); fields use fixed byte-aligned approximations rather than true bit-level packing, so files do not decode1.0accepts 0%, covers 7.2%, 66/s
png/pngValid PNGs of every colour type with all the standard chunks1.0accepts 96%, covers 23.0%, 22/s
png/png-32x3232x32 RGB PNG with lengths and CRCs written as constraints1.0accepts 100%, covers 11.0%, 0.85/s
png/png-apngAnimated PNG (APNG) with the usual ancillary chunks1.0accepts 100%, covers 20.0%, 1.1/s
png/png-boundarySame as png, with values taken from the edges of what the format allows1.0accepts 91%, covers 22.4%, 71/s
png/png-containerPNG chunk structure only; image data is arbitrary bytes, so most files do not decode1.0accepts 0%, covers 13.8%, 4.6/s
png/png-extensions1x1 PNGs with the registered extension chunks, APNG included1.0accepts 100%, covers 26.6%, 16/s
ppm/ppmP3 (ASCII) and P6 (raw) PPMs with 8-bit and 16-bit samples, header comments and whitespace1.0accepts 100%, covers 23.1%, 46/s
ppm/ppm-boundarySame as ppm, with values taken from the edges of what the format allows (maxval 1, 255, 256 and 65535; leading-zero dimensions; every whitespace flavour)1.0accepts 92%, covers 24.6%, 54/s
ppm/ppm-streamA PPM image followed by zero or more further images concatenated in the same file, covering maxval's full normative range1.0accepts 73%, covers 36.8%, 1.4/s
ppm/ppm-stream-boundarySame as ppm-stream, with concatenated P3/P6 images and sample bytes taken from the edges of what the format allows1.0accepts 96%, covers 34.5%, 72/s
svg/svgCore SVG 1.1 elements (shapes, paths, text, gradients, filters, clipping/masking, markers, style/script, animation)1.0accepts 85%, covers 80.6%, 53/s
svg/svg-boundarySame as svg, with values taken from the edges of what the format allows (huge/negative coordinates, deprecated DOCTYPEs and attributes, every legacy colour syntax, foreignObject, SMIL timing edge cases)1.0accepts 6%, covers 31.6%, 48/s
svg/svg-doctypeSame as svg, with every element's optional presentation attributes toggled individually and a choice of legacy DOCTYPE/DTD declarations (or none)1.0accepts 2%, covers 63.6%, 43/s
svg/svg-extensionsSame as svg, plus legacy SVG 1.1 font/glyph elements, draft SVG 2 paint servers (meshGradient, hatch, solidColor) and a few non-SVG embedded tags (audio/video/canvas/iframe) that real renderers treat as inert unknown elements1.0accepts 98%, covers 72.5%, 39/s
svg/svg-kitchen-sinkA single, almost entirely fixed document that packs nearly every SVG feature into one file; useful as one maximally-featured compatibility sample, not as a randomized fuzzer (little varies between runs)1.0accepts 100%, covers 86.3%, 65/s
svg/svg-nested-animationSame as svg, grounded directly in the SVG 2 recommendation, with SMIL <animate> elements nested as children of the shape they animate instead of appearing as unrelated top-level siblings1.0accepts 22%, covers 70.4%, 53/s
svg/svg-rare-featuresSame as svg, biased toward obscure and rarely-implemented corners of the spec (mesh gradients, uncommon filter primitives, baseProfile/contentScriptType and other seldom-used root attributes)1.0accepts 63%, covers 78.5%, 41/s
tiff/tiffTIFF in eight fixed layouts: both byte orders, tiled, palette, multi-page, SubIFD, BigTIFF1.0accepts 100%, covers 10.8%, 63/s
tiff/tiff-all-tagsOne grayscale TIFF with a 55 entry IFD: every field type, Exif, GPS, ICC, XMP, SubIFD1.0accepts 100%, covers 13.1%, 6.0/s
tiff/tiff-baselineBaseline TIFF 6.0: bilevel, gray, RGB, palette and big endian gray1.0accepts 100%, covers 9.3%, 34/s
tiff/tiff-edgeTIFF with tiles, two pages, 1/4/8 bit samples, FillOrder 2 and rare field types1.0accepts 100%, covers 9.4%, 56/s
webp/webpWebP with real 2x2 image data: lossy, lossless, alpha, animation and metadata1.0accepts 100%, covers 37.2%, 28/s
webp/webp-bitstreamWebP with the VP8 and VP8L internals spelled out; files do not decode1.0accepts 18%, covers 15.5%, 103/s
webp/webp-containerWebP RIFF container in all five file shapes; image data is filler, so files do not decode1.0accepts 100%, covers 29.2%, 35/s
xbm/xbmX11 (unsigned char/char) and X10 (short) XBM dialects, with and without a cursor hotspot1.0accepts 100%, covers 86.7%, 1.6/s
xbm/xbm-boundarySame as xbm, with values taken from the edges of what the format allows (dimensions that stress ceil() row padding, a degenerate 0x0 bitmap, and hotspot values parsers rarely range-check)1.0accepts 100%, covers 88.3%, 2.7/s
xbm/xbm-guardsSame dialects as xbm, wrapped in #ifndef include guards or nested #if preprocessor conditionals, with both hotspot-define orderings and large/asymmetric geometries1.0accepts 100%, covers 86.7%, 91/s
xbm/xbm-lexicalSame dialects as xbm, with the surrounding C lexical detail varied instead of the geometry (arbitrary identifier stems, inline comments, variable-width hex literals, optional trailing comma)1.0accepts 0%, covers 66.7%, 0.05/s
xpm/xpmCore XPM3 features one at a time (hex colours, multi-char pixels, cursor hotspot, multi-visual colour keys, XPMEXT, named colours, transparency)1.0accepts 100%, covers 71.5%, 0.05/s
xpm/xpm-catalogA curated, mostly-fixed catalogue of representative example files spanning the XPM3, XPM2 and XPM1 dialects; useful as compatibility samples, with far less per-run variation than xpm or xpm-legacy1.0accepts 94%, covers 76.8%, 4.2/s
xpm/xpm-legacySame as xpm, plus the deprecated XPM1 (#define + _colors[]/ _pixels[] arrays) and XPM2 (plain-text "! XPM2") dialects, with boundary hex-width colour values and large hotspot coordinates1.0accepts 51%, covers 74.8%, 61/s
xpm/xpm-lexicalSame as xpm, with the surrounding C lexical detail varied instead (storage-class spelling, optional const qualifier, arbitrary identifiers, interspersed comments) and the fuller X colour notation catalogue (rgb:/rgbi) intensities alongside hex and named colours)1.0accepts 100%, covers 68.2%, 51/s