STREAMARCHIVE(4L)

NAME
streamarchive - StreamArchive file format

DESCRIPTION

StreamArchive typed archives are a series of keyword and value records that are similar to content of the POSIX.1-2001 extended headers called TAR (PAX) HEADERs.

A new file always begins with the path keyword and after the mandatory size keyword, file content may follow. Each file record is terminated by a status keyword.

An archive begins with an archtype=StreamArchive record and ends with a status=EOF record.

HEADER FORMAT

The header records use the following format:

    "%d %s=%s\n", <length>, <keyword>, <value>

Each record starts with a a decimal length field. The length includes the total size of a record including the length field itself and the trailing new line.

The keyword may not include an equal sign. All keywords beginning with upper case letters are reserved for local extensions.

If the value field is of zero length, it deletes any header field of the same name that is in effect from the same extended header or from a previous global header.

Null characters do not delimit any value. The data used for value is only limited by its implicit length.

HEADER KEYWORDS
All numerical values are represented as decimal strings. All texts are represented as 7-bit ascii or UTF-8:

atime
    The time from st_atime in sub second granularity. A nanosecond granularity is currently supported.

comment
    Any number of characters that  should be treated as comment. The comment is ignored.

ctime
    The time from st_ctime in sub second granularity. A nanosecond granularity is currently supported.

dev The device id from st_dev of the file as decimal number.

    The value is a signed int. An implementation should be able to handle at least 64 bit values. Note that the value is signed because POSIX does not specify more than the type should be an int.

devmajor
    The device major number of the file if it is a character or block special file. The argument is a decimal number.

    The value is a signed int. An implementation should be able to handle at least 64 bit values. Note that the value is signed because POSIX does not specify more than the type should be an int.

devminor
    The device minor number of the file if it is a character or block special file. The argument is a decimal number.

    The value is a signed int. An implementation should be able to handle at least 64 bit values. Note that the value is signed because POSIX does not specify more than the type should be an int.

filetype
    A textual version of the real file type of the file. The following names are used:

    unallocated
        An unknown file type that may be a result of a unlink(2) operation. This should never happen.

    regular
        A regular file.

    contiguous
        A contiguous file. On operating systems or file systems that don't support this file type, it is handled like a regular file.

    symlink
        A symbolic link to any file type.

    directory
        A directory.

    character special
        A character special file.

    block special
        A block special file.

    fifo
        A named pipe.

    socket
        A UNIX domain socket.

    mpx character special
        A multiplexed character special file.

    mpx block special
        A multiplexed block special file.

    XENIX nsem
        A XENIX named semaphore.

    XENIX nshd
        XENIX shared data.

    door
        A Solaris door.

    eventcount
        A UNOS event count.

    whiteout
        A BSD whiteout directory entry.

    sparse
        A sparse regular file.

    volheader
        A volume header.

    unknown/bad
        Any other unknown file type. This should never happen.

arfiletype
    The following additional file types are used in arfiletype:

    hardlink
        A hard link to any file type.

gid The group ID of the group that owns the file. The argument is a decimal number.

gname
    The group name of the following file(s) coded in UTF-8.

ino The inode number from st_ino of the file as decimal number.

    The value is an unsigned int. An implementation should be able to handle at least 64 bit unsigned values.

linkpath
    The name of the linkpath coded in UTF-8 if it is longer than 100 characters or cannot be expressed in 7-Bit ASCII.

mtime
    The time from st_mtime in sub second granularity. A nanosecond granularity is currently supported.

nlink
    The link count of the file as decimal number.

    The value is an unsigned int. An implementation should be able to handle at least 32 bit unsigned values.

path
    The name of the path coded in UTF-8.

size
    The size of the file as decimal number. The size keyword may not refer to the real file size but is related to the size if the file in the archive.

uid The uid ID of the group that owns the file. The argument is a decimal number.

uname
    The user name of the following file(s) coded in UTF-8.

VENDOR.keyword
    Any keyword that starts with a vendor name in capital letters is reserved for vendor specific extensions by the standard.

SEE ALSO

NOTES

BUGS

AUTHOR