Skip to content
imferno

Introduction

imferno is a Rust library for working with IMF (Interoperable Master Format) packages. It parses, validates, and inspects IMPs — the delivery format used by Netflix, Amazon, and major broadcasters for archival-quality content exchange.

IMF (Interoperable Master Format) is a family of SMPTE standards — ST-2067 — defining how finished audiovisual content is packaged for delivery and archive. An IMP (IMF Package) is a directory containing:

  • ASSETMAP.xml — inventory of all files and their UUIDs
  • PKL (Packing List) — SHA-1 hashes and sizes for integrity verification
  • CPL (Composition Playlist) — timeline describing how track files compose a finished piece
  • MXF track files — the actual essence: video, audio, subtitles

IMF is the successor to DCP for long-form content. It supports multiple versions of a title (different languages, territories, ratings) in a single package via supplemental CPLs — without duplicating essence.

  • Parses ASSETMAP, PKL, CPL, and VOLINDEX XML per the SMPTE ST-2067 spec
  • Validates structural integrity against Core Constraints and Application profiles
  • Inspects track composition, language tags, and application profiles
  • Exports structured JSON reports with full type definitions
  • Available as a native CLI, Rust crate, and WebAssembly module
PackageDescription
imfernoCLI with prebuilt native binaries
@imferno/wasmWebAssembly bindings for JS/TS
@imferno/nodeNative Node.js bindings (filesystem + hash verification)
@imferno/schemaJSON Schema definitions for structural validation
imferno-coreRust crate with all parsing and validation logic
StandardDescriptionStatus
ST 429-9:2014Volume Index & Asset MapComplete
ST 2067-2:2013, :2016, :2020Core Constraints & Packing ListComplete
ST 2067-3:2013, :2016, :2020Composition PlaylistComplete
ST 2067-9:2018Sidecar Composition MapComplete
ST 2067-21:2020, :2023, :2025Application Profile #2E (UHD/HDR)Complete
ST 2067-201:2019, :2021IAB (Immersive Audio Bitstream)Complete
ST 2067-202:2022ISXD (Immersive Sound XML Data) Plug-inComplete
ST 377-1:2011MXF file structurePartial — header partition only

imferno brings SMPTE ST-2067 correctness to Rust — with zero GC pauses, a native CLI, and WASM compilation for browser tooling.