I’m the current maintainer of the MAF extension, that provides support for the MAFF format in Firefox. Sull invited me to this thread and I found it really insightful. I may add some more information, and since MAFF is potentially an evolving format, I welcome any input that may help to shape its future.


Sull already provided valuable input, making me think about MAFF as a media packaging format, and the latest MAF 0.15.1provides an interesting feature that’s peculiar to ZIP compression (compared, for instance, to .tar.gz of the KDE war format): OGG files are stored without re-compressing them.

Thanks to this, audio and video in a large MAFF+OGG file are seekable in real-time exactly like a standalone OGG file.

The only strict design goals for MAFF are (1) to be very easy to use and implement, and (2) to be based on existing and widely-used technologies. Backwards compatibility with the existing implementation is also very important.

At present, MAFF archives can be multi-page, but the basic atom is the “page”. Each “page” may be updated or used independently from the others.

Optional metadata (currently stored as RDF/XML) may link each “page” in the archive to an original location (URL) that can be queried for updated versions of the entire “page”, if desired. The root document may link to other resources in the archived “page”, through relative URLs, or to remote URLs, indifferently. All the local resources are “owned” exclusively by the “page”.

If no original location is specified, it currently just means that the file was authored as a standalone package to begin with.

The MAF extension does not support remote MAFF files, at present, but Firefox can access any remote ZIP file using the “jar:” protocol. In this case, I think the caching headers of the MAFF/ZIP file itself are used to check if updated versions of the remote archive exists. That’s different from using the original location in the archive’s metadata to check for updated versions of a “page”.

I hope to have answered some of the questions and not just created confusion :-) I welcome your comments. If you’re interested in MAF and MAFF development, there’s also a mailing list on mozdev.org (it’s used mainly for support questions but it’s also the appropriate place for file format and general inquiries).