The following is a list of things I would like to see done with libarchive. It's sorted roughly in priority; more feasible and more often-requested items are higher on the list. If you think you have time to work on any of these, please let me know. * More compression options: Recent improvements to the read bidding system and external program support should make it very simple to add support for lzo, lzf, and many other command-line decompression programs. I've even written up a Wiki page describing how to do this. * cpio front-end. The basic bsdcpio front-end is now working. I'm looking for feedback about what additional features are necessary. * pax front-end. Once cpio is a little more stable, I plan to fork it as the basis of a pax front-end. The only really tricky part will be implementing the header-editing features from POSIX 2001 'pax', which will require some changes to the libarchive API. * libarchive on Windows. libarchive mostly builds cleanly on Windows and Visual Studio. Making this really clean requires reworking the public API to not use dev/ino; I think I know how to do this but could use advice from someone knowledgable about Windows file-management APIs. * Linux large-file/small-file dance. libarchive always builds with 64-bit off_t and stat structures; client programs don't always do this. Supporting client programs built with 32-bit off_t requires a little trickery. I know how to do this but haven't had time to work through it. * bsdtar on Windows. After libarchive is working on Windows, this should be much simpler. At worst, you can just disable features. * Writing tar sparse entries. The GNU "1.0" sparse format sucks a lot less than the old GNU sparse format, so I'm finally dropping my objections to sparse file writing. This requires extending archive_entry to support a block list, and will require extensive changes to bsdtar to generate block lists. The sparse read code will also need to put block lists into the entry so that archive-to-archive copies preserve sparseness. * ISO9660 writing. Writing ISO9660 requires two passes, and libarchive is a single-pass API. For ISO9660, you can hide that behind a temp file, though. Collect metadata in memory, append file bodies (properly padded to 2k sector boundaries) to a temp file, then format the directory section and copy the file data through at format close. * archive_read_disk: Currently, libarchive can generate a stream of entries from an archive file and can feed entries to an archive file or a directory. The missing corner is pulling entries from a directory. With that, libarchive can provide efficient bulk copy services for dir-to-dir, dir-to-archive, archive-to-dir, and archive-to-archive. Right now, the read-from-disk capabilities are handled in the client. * ISO9660 Level 3. ISO9660 Level 3 supports files over 4GB. * --split= option to bsdtar. This would watch the total output size and begin a new archive file whenever + exceeded . Not as robust as GNU tar's ability to split an entry across archives, but still useful in many situations. * Filename matching extensions: ^ to anchor a pattern to the beginning of the file, [!...] negated character classes, etc.