Libarchive is a programming library that can create and read
several different streaming archive formats, including most
popular TAR variants and several CPIO formats. It can also
write SHAR archives.