arsd.archive

Provides LZMA (aka .xz) and .tar file read-only support. Combine to read .tar.xz files, or use in conjunction with other files to read other types of .tar files.

Also has a custom archive called arcz read and write support. It is designed to efficiently pack and randomly access large numbers of similar files. Unlike .zip files, it will do cross-file compression (meaning it can significantly shrink archives with several small but similar files), and unlike tar.gz files, it supports random access without decompressing the whole archive to get an individual file. It is designed for large numbers of small, similar files.

Public Imports

core.stdc.stdio
public import core.stdc.stdio : SEEK_SET, SEEK_CUR, SEEK_END;

Members

Classes

ArzCreator
class ArzCreator

this class can be used to create archive file.

Enums

TarFileType
enum TarFileType

There's other types but this is all I care about. You can still detect the char by ((cast(char) type) + '0')

Functions

processTar
bool processTar(TarFileHeader* header, long* bytesRemainingOnCurrentFile, ubyte[] dataBuffer, scope void delegate(TarFileHeader* header, bool isNewFile, bool fileFinished, ubyte[] data) handleData)

Low level tar file processor. You must pass it a TarFileHeader buffer as well as a size_t for context. Both must be initialized to all zeroes on first call, then not modified in between calls.

Manifest constants

arcz_has_balz
enum arcz_has_balz;

ARZ chunked archive format processor.

Structs

AZFile
struct AZFile

Opened file.

ArzArchive
struct ArzArchive

ARZ archive accessor. Use this to open ARZ archives, and open packed files from ARZ archives.

TarFileHeader
struct TarFileHeader

A header of a file in the archive. This represents the binary format of the header block.

XzDecoder
struct XzDecoder

A simple .xz file decoder.

Meta

Suggestion Box / Bug Report