A collection of technical documentation and specifications about Apple- and Mac-related file formats, mainly from the classic Mac OS and early Mac OS X era.
If any links on this page are no longer functional, check if they have been archived by the Internet Archive Wayback Machine, or using archive.is aka archive.fo.
This work is licensed under a Creative Commons Attribution 4.0 International License.
Note: The license only applies to the contents of this repository. All linked external websites and documents are subject to their own copyright notices and license terms.
These resources provide general documentation about the Mac, its internals, and development for the platform. They don't focus on any specific topic.
These resources are not Mac-specific, but contain some Mac-related information.
-
Wikipedia has articles about many Mac-related topics. The articles themselves usually don't go into deep technical detail, but the references and external links are often worth looking at for more information.
-
The Just Solve the File Format Problem wiki, run by Archive Team, provides information about various file formats. The name might sound like clickbait, but this is a decent site with useful information. As with Wikipedia, the articles often don't go into much detail, but the links are useful for further research.
-
The Kaitai Struct format gallery is a collection of Kaitai Struct specifications for common file formats. The source code for all specs can be found in the kaitai-io/kaitai_struct_formats GitHub repo. These specs can be compiled to many popular programming languages to allow parsing files in the specified format.
-
The Internet Archive (archive.org) has some Mac-related literature, documents and software. Aside from the general search function, the following collections are relevant in particular:
- Folkscanomy: Macintosh Books
- The Software Library: Apple Computer (this collection focuses mainly on the non-Macintosh Apple computers)
- Software Library: Macintosh
-
bitsavers.org is an archive of documents (and some software) related to technology and computing. The site has no built-in search function, but external search engines can be used. It is also mirrored to archive.org (at least partially), so it can be searched using their search function. The site is organized by topic, so a text search often isn't necessary. The following directories are relevant in particular:
These resources are specifically about Apple and the Mac.
-
Apple's developer download section provides downloads for Xcode and other Mac OS X/macOS developer tools. The earliest downloads are from the Mac OS X Panther (10.3) era. Accessing this page requires an Apple ID with a developer program membership (the free membership is sufficient).
-
Apple's developer documentation is the official source of developer information for Apple's platforms. The main section of the website only covers current system versions, but older information can be found in the documentation archive. Unfortunately, Apple sometimes arbitrarily removes older documents from the archive. It's not clear how Apple decides what to remove - it's not purely based on age, as the oldest available documents (as of October 2019) are tech notes from 1985. This means that some older documentation can only be found in old copies of the website, such as the following:
-
The Wayback Machine has saved almost all parts of the site at some point. The URLs of the documentation and archive have changed in the past - if the Wayback Machine doesn't have a URL saved, it may help to search for the same URL with a different prefix. The following prefixes were used in the past (ordered from newest to oldest):
- https://developer.apple.com/library/archive/ (legacy)
- https://developer.apple.com/library/mac/ (non-legacy), https://developer.apple.com/legacy/library/ (legacy)
- https://developer.apple.com/mac/library/ (non-legacy), https://developer.apple.com/legacy/mac/library/ (legacy)
-
A copy dated August 2010 can be found on the Internet Archive and on macintosharchive.org's mirror of Max1zzz's server.
-
oldschooldaw.com has a mirror from October 2006. This mirror has itself been mirrored by macintosharchive.org.
-
-
Apple's Technical Notes provided developer documentation for classic Mac hardware and software. Some of them can still be found in Apple's documentation archive, but many of them have been removed. Mirrors of the technical notes can be found online:
- fenestrated.net has a mirror of the technical notes from 2002.
- A collection of developer notes can be found on the Internet Archive and on macintosharchive.org's mirror of Max1zzz's server.
-
The Apple Support Area on download.info.apple.com, Apple's download section for pre-Mac OS X systems (and some early Mac OS X-related files). The files under this directory tree can still be downloaded from Apple, although the server no longer provides directory listings. The contents of this server are also widely mirrored:
- The Wayback Machine contains a likely complete copy of the directory listings and files.
- The Internet Archive has a copy, and another one.
- Max1zzz's server has a copy of the Apple_Software_Updates subdirectory.
- macintosharchive.org has a copy.
- fenestrated.net has a copy, which can also be found in macintosharchive.org's mirror of Max1zzz's server.
-
ftp.apple.com, Apple's FTP server. Like many old FTP servers, it is no longer online. Some of its content is available from download.info.apple.com (see above). There are also some mirrors of the FTP server:
- A mirror claiming to be from November 2018 (date likely incorrect) can be found on the Internet Archive and on macintosharchive.org's mirror of Max1zzz's server.
- staticky.com has a partial mirror of the developer subdirectory. This mirror is incomplete - apparently the server was mirrored with a low directory depth limit, so the contents of deeply nested directories were not mirrored.
-
Macintosh Garden and Macintosh Repository are archives of classic Mac (and early Mac OS X) freeware, abandonware and related documentation. They are useful places to find system files and developer tools.
- The Internet Archive has a mirror of Macintosh Garden's files from 2018.
-
macintosharchive.org hosts a collection of mirrors of Mac-related websites.
-
Max1zzz's server was a collection of Mac-related files and mirrors, but as of April 2019 it is no longer online. A complete mirror can be found on macintosharchive.org.
-
VintageApple.org is a collection of early Apple and Mac documents and a couple of mirrors.
-
Mothers Ruin Software develops a couple of tools for analyzing macOS software distribution formats. The results of some of their reverse engineering efforts behind these tools are published on their website.
- Notably, their Archaeology tool allows inspecting various data formats commonly used on Apple systems, including some formats that are undocumented and/or not well-supported by other tools.
The Inside Macintosh book series are Apple's official reference material for the classic Macintosh platform. Over time, they have gone through many revisions and updates, and their structure has been changed multiple times.
The Gryphel project (best known for the Mini vMac emulator) has a list of physical book releases of Inside Macintosh (and other Apple developer documentation), including ISBNs, publishers, dates, and Amazon links.
The following is a (likely incomplete) list of the major revisions of Inside Macintosh and where they can be obtained online.
-
The earliest revisions consisted of two volumes, each a three-ring binder containing photocopied pages. The chapters were referred to as individual "manuals" and were essentially standalone - each one had its own title page, TOC, glossary, and page numbers. Various parts were still missing or not yet finalized, and updated pages were distributed regularly as part of the Macintosh Software Supplement.
-
The Promotional Edition, released in early 1985, consisted of a single book (it was nicknamed the "phonebook" edition because of its paper quality). Although it was physically a single book, the contents were still structured into standalone "manuals" like in the ring binder version, and some parts were still missing or not finalized.
- bitsavers.org has a scanned and OCRed PDF.
-
The published 1985 revision consisted of three volumes, available as three paperback books or a single hardcover book. They contained the finalized contents of the previous revisions, which documented the Macintosh 128k, Macintosh 512k, and Macintosh XL. Unlike the previous revisions, each volume had continuous page numbers and a full TOC and index, and volume III contained a complete glossary.
- pagetable.com has a blog post with a scanned and OCRed PDF of the three paperback volumes.
-
Additional volumes were published later to document newer Macintosh models. These served as incremental additions and did not fully supersede or replace any of the previous volumes.
- Volume IV was published in 1986 and documented the Macintosh Plus and Macintosh 512k Enhanced.
- Volume V was published in 1986 and documented the Macintosh II and Macintosh SE.
- Volume VI was published in 1991 and documented System 7.0.
- VintageApple.org has scanned and OCRed PDFs of Volumes I through VI.
-
After 1991, Inside Macintosh was restructured into over 20 volumes organized by topic, rather than chronologically by Macintosh model. These were published as books starting in 1992, and later also on CDs and online.
-
VintageApple.org has rendered (not scanned) PDFs of 26 volumes and 7 X-Ref volumes.
- The Communications Toolbox and QuickDraw GX Programmers' Overview volumes appear to be missing.
-
Many volumes are still available in Apple's legacy developer documentation archive, in HTML and rendered (not scanned) PDF formats:
-
Two volumes appear on the website under Inside Macintosh, even though other sources don't consider them part of the Inside Macintosh series:
- Advanced Color Imaging on the Mac OS (HTML) (November 1996)
- Advanced Color Imaging Reference (HTML) (November 1996)
-
Devices (HTML) (July 1996), Devices (chapter PDFs) (1994)
-
Files (HTML) (July 1996), Files (chapter PDFs) (1992)
-
Imaging with QuickDraw (HTML) (July 1996), Imaging with QuickDraw (single PDF) (1994)
-
Interapplication Communication (HTML) (July 1996), Interapplication Communication (chapter PDFs) (1993)
-
Macintosh Toolbox Essentials (HTML) (July 1996), Macintosh Toolbox Essentials (single PDF) (1992)
-
Memory (HTML) (July 1996), Memory (chapter PDFs) (1992)
-
More Macintosh Toolbox (HTML) (July 1996), More Macintosh Toolbox (single PDF) (1993)
-
Networking (HTML) (July 1996), Networking (chapter PDFs) (1994)
-
Operating System Utilities (HTML) (July 1996), Operating System Utilities (chapter PDFs) (1994)
-
PowerPC Numerics (HTML) (July 1996), PowerPC Numerics (chapter PDFs) (1994)
-
PowerPC System Software (HTML) (July 1996), PowerPC System Software (chapter PDFs) (1994)
-
Processes (HTML) (June 1996), Processes (chapter PDFs) (1992)
-
Sound (HTML) (July 1996), Sound (chapter PDFs) (1994)
-
Text (HTML) (July 1996), Text (single PDF) (1993)
-
The two AOCE volumes, Communications Toolbox, Human Interface Guidelines, Overview, seven QuickDraw GX volumes, two QuickTime volumes, and X-Ref are missing.
-
-
- The chapter "The Finder Interface" in the Inside Macintosh series explains the basic concepts and lists a few standard/system file type codes. This chapter is found in Volume III of the original Inside Macintosh revisions, and in the "Macintosh Toolbox Essentials" volume of the restructured revisions.
- Apple previously provided a registration service for creator codes to prevent conflicting uses of the same creator codes. This included a lookup form for checking if a creator code is already in use, but there was no public list of all creator codes.
- An early 2000s version of the service also had a FAQ about creator code registration.
- The last version of the service was found at https://developer.apple.com/datatype/ until 2009 or so (based on the Wayback Machine history). Afterwards, that URL redirected to Apple's documentation for Uniform Type Identifiers (UTIs), which are the modern replacement for type and creator codes.
- The Type/Creator Database (TCDB/TCDBx) is exactly what it sounds like. Notably, it's a downloadable application, not an online service.
- It was previously a paid product, but the current homepage at lacikam.co.il offers a free download of the full data set.
- The former homepage at homepage.mac.com/tcdb/ is no longer up, but can be found in the Wayback Machine.
- Various versions of the downloads are mirrored on Macintosh Garden.
- Indiana University has a very short explanation of type/creator codes.
- macdisk.com has an explanation page "Signatures of Macintosh Files", including a list of some common type and creator codes.
- Zeus Productions has a "tech note" explaining how to use type/creator codes in Macromedia Director (I think). It also explains some general concepts and lists common and Director-specific type/creator codes.
- revolution.byu.edu had a help article "Mac Creator Signature and File Types in Revolution/LiveCode", which also gives a short general explanation, a list of a few common type and creator codes, and some related links.
- A 2005 post by Henning Ramm on the Pythonmac-SIG mailing list gives some mappings from type/creator codes to file extensions (and vice versa) and short descriptions.
- The chapter "Resource Manager" in the Inside Macintosh series. This chapter is found in Volume I of the original Inside Macintosh revisions, and in the "More Macintosh Toolbox" volume of the restructured revisions.
- Wikipedia's resource fork article.
- The Resource Fork article on the JSTFFP wiki.
- The KSFL library (and its wiki), written in Java, which supports reading and writing resource files.
- Alysis Software Corporation's article on resource compression (found on the company's website and in MacTech Magazine's online archive) has some information on the structure of certain kinds of compressed resources.
- Apple's macOS SDK, which is distributed with Xcode. The latest version of Xcode is available for free from the Mac App Store. Current and previous versions can be downloaded from Apple's developer download section.
- Apple's MPW (Macintosh Programmer's Workshop) and related developer tools and their documentation. These were previously available from Apple's FTP server.
- whitefiles.org has a "Resources" page explaining the basics of ResEdit and common system resource types.
- Wikipedia's AFP article.
- The AFP programming guide and AFP reference from Apple's developer documentation.
- A microsoft.public.windowsnt.mac Usenet discussion (individual raw messages: question, answer) about how AFP file information and resource forks are stored on Windows NTFS volumes. (TLDR: alternate data streams named AFP_AfpInfo and AFP_Resource.)
-
The articles on the JSTFFP wiki about AppleSingle and AppleDouble.
-
The Kaitai Struct spec
filesystem/apple_single_double
, as found on formats.kaitai.io and in the kaitai_struct_formats repo. -
Apple's Apple II File Type Notes for AppleSingle (E0 0001) and AppleDouble (E0 0002 and E0 0003), which document version 1 of the format, with a short note about version 2. These notes can be found in many places online:
- On nulib.com, in plain text format: AppleSingle, AppleDouble (mirrored on ee.columbia.edu: AppleDouble)
- On 1000bit.it, in formatted HTML format: AppleSingle, AppleDouble
- On apple2online.com, in rendered PDF format: AppleSingle, AppleDouble
-
Apple's A/UX Toolbox Macintosh ROM Interface documentation, section 6 "File Systems and File Formats", subsection "AppleSingle and AppleDouble format internals", which documents version 1 of the format.
- bitsavers.org has a scanned and OCRed PDF of the entire document. In this version, the relevant pages are 6-15 through 6-20 (real page numbers 126 through 131).
- kaiser-edv.de had a scanned PDF of the relevant pages (website gone, link via Wayback Machine) from a slightly different edition.
-
Apple's AppleSingle/AppleDouble Formats for Foreign Files Developer's Note, from 1990, which documents version 2 of the format. A rendered PDF version is available from nulib.com and from kaiser-edv.de (website gone, link via Wayback Machine).
-
RFC 1740 - MIME Encapsulation of Macintosh files - MacMIME, from 1994, describes a later version of the format. (It appears to be equivalent to version 2 described in the previous developer's note.)
-
A number of GitHub projects work with AppleSingle/AppleDouble files in some way and allow reading the format in different languages. In no particular order:
- https://github.com/AppleCommander/applesingle
- https://github.com/fthain/applesingle
- https://github.com/robzed/AppleSingle_Decoder
- https://github.com/gitpan/Mac-AppleSingleDouble
- https://github.com/marcust/AppleSingleReader
- https://github.com/ksherlock/dot_clean
- https://github.com/rolftimmermans/node-xattr-file
- https://github.com/MacPaw/XADMaster/blob/master/XADAppleDouble.m
- https://github.com/MacPaw/XADMaster/blob/master/XADAppleSingleParser.m
- https://github.com/ParksProjets/Maconv
The QTR (QuickTime RezWack) format was used to add Mac-style resources to Windows files. It was used as part of QTML, the QuickTime Media Layer, which was effectively a partial port of the Macintosh Toolbox and Mac OS to Windows, to allow writing cross-platform QuickTime code that could be used with both Mac and Windows versions of QuickTime.
-
Two articles from MacTech's online archive: one about QuickTime for Windows and QTML development in general, and another specifically about using QTR-based resources.
-
The QuickTime 7.3 SDK for Windows. It contains Windows versions of the DeRez, Rez, RezDet, and RezWack tools that use the QTR format, instead of normal resource forks like their Mac versions.
-
It can be officially downladed from Apple's developer download section. The file you download there is:
- a Zip archive called quicktimesdk.zip (SHA256 31ffc087e03a68585c7b67c7986e80eeb6440ac7fdb410a381e9b9da9b561d6d), containing...
- a self-extracting cabinet EXE called QuickTimeSDK.exe (SHA256 fea9102899b6f6a1b20f1a1d1d656d28ffe32b99afb95c826548c0fef1d42bb1), containing...
- an MSI installer called QuickTimeSDK.msi (SHA256 40fb26259e60bd1711bd6845223392381b973a50d76ac231283bf603a2b4aff1), containing the actual files.
-
The SDK can also be obtained elsewhere, in which case you might find it in any of the three formats listed above. If the file you downloaded matches any of the above hashes, you can be sure that it's the original unmodified SDK.
- For example, the MSI version can be found in a random GitHub repo.
-
- TomeViewerX is an open-source, MIT-licensed "incomplete parser for Mac OS Tome files". It doesn't support actually decompressing the stored files.
- Some discussion related to reverse-engineering the tome format can be found on the issue tracker for XADMaster (The Unarchiver).
- The Mac OS X/macOS hdiutil(1) man page. Although naturally it focuses on how to work with disk images and doesn't specify any data formats, it does document lots of random technical details. In particular:
- Under
hdiutil convert
is a list of basically all disk image formats and variants that Apple has ever supported. - The "compatibility", "history", and "what's new" sections give a pretty complete history of these disk image formats/variants and which system versions support them (or don't).
- Some older info has been removed from the man page since macOS 11, which removed support for most Classic Mac OS disk image formats.
- Under
- Wikipedia's Apple Disk Image article has some general information, but also documents the basic data structures of UDIF disk images.
- macdisk.com also documents the basic data structures of UDIF disk images.
- NewOSXBook.com has a page "Demystifying the DMG File Format", which documents the main UDIF metadata structures.
- Mothers Ruin Software has some documentation about the UDIF trailer metadata structure, assembled from various sources and their own reverse-engineering work.
- A Macworld Mac OS X Hints page about HFS+ compression in Mac OS X 10.6. The comments discuss additional tools for examining de-/compressing files compressed with HFS+ compression.
- One such tool, afsctool, has been developed by brkirch, the author of the above page. brkirch's afsctool homepage still exists (as of 2023-08), but the Google Drive download link isn't publicly accessible anymore. However, a few updated/extended versions of the afsctool source code can be found on GitHub:
- https://github.com/jrk/afsctool - archived since 2018-01-21
- https://github.com/RJVB/afsctool - still updated as of 2023 and supports newer macOS versions and compression algorithms like LZVN and LZFSE
- One such tool, afsctool, has been developed by brkirch, the author of the above page. brkirch's afsctool homepage still exists (as of 2023-08), but the Google Drive download link isn't publicly accessible anymore. However, a few updated/extended versions of the afsctool source code can be found on GitHub:
- macdisk.com documents the ADC compression algorithm.
- node-apple-data-compression implements ADC decompression as a Node.js library.
A proprietary archive format supporting various compression algorithms and extensible metadata.
Officially introduced with macOS 11 via the Apple Archive framework and the aa
command line tool.
It evolved from the earlier YAA format, which was already supported since macOS 10.13 via the yaa
command line tool, but not well-documented or advertised by Apple.
Apple's own Apple Archive tools and libraries seem to be backwards compatible with the earlier YAA format.
The macOS Archive Utility has supported extracting YAA and Apple Archives since their respective introduction, but supports creating Apple Archives only since macOS 12.
- The "Unpacking Apple Archives" thread on the Apple Developer Forums explains the use of Apple Archives (and formerly YAA archives) inside XIP archives.
- A blog post by Nightwatch Cybersecurity from 2020 (before the official introduction as Apple Archive) discusses the possible use of YAA archives by malware.
- Howard Oakley's blog, The Eclectic Light Company, has multiple blog posts about Apple Archives.
- An issue on the issue tracker for the Keka archive manager discusses supporting Apple Archive and YAA archives.
- The Apple Wiki has an Apple Archive page with some technical details about the data format.
- libNeoAppleArchive is an open-source, MIT-licensed "unfinished cross-compat library for parsing Apple Archive (and, by extension, YAA)".
Another proprietary format, built on top of the Apple Archive format, which adds the ability to encrypt and/or sign archives.
- The Apple Wiki has an Apple Encrypted Archive page with a high-level overview of the format and its uses.
- python-aea is an open-source, MIT-licensed tool for extracting and creating Apple Encrypted Archives, along with detailed documentation of the data format.
- Mothers Ruin Software documents the NIB archive data format.
- The open-source, MIT-licensed nibsqueeze tool includes documentation of the data format as it was originally introduced in iOS 6.
- There is an open-source, GPLv3-licensed NIBArchive-Parser library/tool written in Python. (Previous URL: https://github.com/JustHexData/nibarchive)
- There is an open-source, Apache-/MIT-licensed NIB Archive Decoder/Encoder library written in Rust.