documentationhistoryhfsfile-forks

When did Apple deprecate or stop publishing the APIs for using named forks, the forks other than the data and resource fork?


Back in the day, one of the Quirks of the Macintosh OS was that files had two "forks", a "resource fork" which held resources used by software through dedicated resource APIs, and a "data fork", which held the plain old data like on other systems, including binary code, text in plain text files, etc.

A little-known feature of HFS+, introduced with Mac OS 8.1 in 1998, is that you can have any number of named forks of any file. Similar to the also little-known feature of NTFS called "ADS" (Alternate Data Streams).

From Wikipedia:

HFS Plus permits filenames up to 255 characters in length, and n-forked files similar to NTFS, though until 2005 almost no system software took advantage of forks other than the data fork and resource fork

Apple doesn't seem to document the APIs for making use of those extra forks any longer.

Do we know if and when Apple officially deprecated the feature? If not, do we know when the APIs vanished from the documentation.


Solution

  • Back in the day, one of the Quirks of the Macintosh OS was that files had two "forks",

    Quirk? Rather a well known feature.

    Similar to the also little-known feature of NTFS called "ADS" (Alternate Data Streams).

    It was a great way to organize Data.

    Apple doesn't seem to document the APIs for making use of those extra forks any longer.

    They are well documented in according Manuals - even online like here. Ofc, there is no reason to go into them since they are deprecated since 10.9 (Mavericks)

    Do we know if and when Apple officially deprecated the feature?

    Yes, they did, and the moment in time was October 2013 when OSX 10.9 was released.

    If not, do we know when the APIs vanished from the documentation.

    Still there today ... at least when looking in the appropriate API documentation for any Mac OS between 1999 (MacOS 8) and 2013.

    Always look at the API for the Version used. Actual OSX does no longer encurrage its use, so not to be found there.