MacBinary is a file format that combines the two forks of a classic Mac OS file into a single file, along with HFS's extended metadata. The resulting file is suitable for transmission over FTP, the World Wide Web, and electronic mail. The documents can also be stored on computers that run operating systems with no HFS support, such as Unix or Windows.
MacBinary was widely supported on the Macintosh and was built into most communications programs on that platform. Similar solutions were built into most data compression applications on the Mac, and although these did not require MacBinary to survive transmission across non-Mac systems, MacBinary was often added in these cases to preserve longer filenames and other features.
The dual-fork nature of the HFS system was not used on Mac OS X, and MacBinary has largely disappeared.
In contrast to other computers of the era, Macintosh applications included both computer code as well as a large number of resources that were used by the operating system (OS) itself. These resources were also widely used in documents to store rich media like sounds and images. However, the resource system had the significant limitation that the maximum size of any single resource was only 32 kB, far too small for storing document data. To address this, Apple introduced the concept of forks, allowing any file in the filesystem to have both a resource fork and a data fork, basically separate files. The OS would ensure the two separate files were always treated as a single object, so dragging it to a floppy disk in the Finder would actually copy both files.
This presented a serious problem when the file had to be stored on other computer systems. Those systems, unaware of the fork concept, would have to store the two forks as separate files. This presented the possibility that the two would be separated at some point, or not properly recombined when they were transmitted back to the Mac. This problem led to a number of solutions that combined the two forks together into a single file, and then automatically pulling them back apart when they reached another Mac. MacBinary was one of the most popular solutions, although BinHex was also used on the UseNet, where links were not 8-bit clean. Apple's own solutions, AppleSingle and AppleDouble, were never widely adopted in the user community.
Files encoded with MacBinary, regardless of the version, usually have a .bin or .macbin file extension appended to the ends of their filenames. E-mail programs such as Eudora can extract and decode MacBinary mail messages. Most dedicated FTP programs for the Mac, such as Fetch and Transmit, transparently decode MacBinary files they download.
MacBinary is similar to BinHex, but MacBinary produces binary files as opposed to ASCII text. Thus, MacBinary files take up less disk space than BinHex files, but older applications and servers are more likely to corrupt them.
The first incarnation of MacBinary was released in 1985. The standard was originally specified by Dennis Brothers (author of the terminal program MacTEP and later an Apple employee), BinHex author Yves Lempereur, PackIt author Harry Chesley, et al. then added support for MacBinary into BinHex 5.0, using MacBinary to combine the forks instead of his own methods. Most terminal programs and internet utilities added built-in MacBinary support during this period as well.
Two years later it was updated to MacBinary II, to accommodate changes in Mac OS. MacBinary II remained compatible with subsequent updates of the operating system for some time. This changed with the release of Mac OS 8, which necessitated the release of MacBinary III in 1996. In the meantime, Apple itself had released the AppleSingle and AppleDouble formats, which serve the same purpose as MacBinary, but correct some problems with it.
- Dennis Brothers, "Macintosh Binary Transfer Format 'MacBinary' Standard (Proposal)", Micro-networked Apple User's Group (CompuServe), 1985
- Adam Engst, "Macintosh Internet File Format Primer", TidBits, 31 August 1991
- "comp.sys.mac.comm FAQ"