@isopodlabs/binary_archives
v0.1.0
Published
A package for reading various archive file formats with TypeScript.
Maintainers
Readme
Binary Archives
This package provides readers for various archive formats, using the @isopodlabs/binary binary file loading library
☕ Support My Work
If you use this package, consider buying me a cup of tea to support future updates!
Supported File Types
zip
ZIP archive reader/writer with support for multiple compression methods and encryption
class Document extends Hierarchy<Entry> {
entries: Entry[];
constructor(file?: stream);
readAll(file: stream, cd?: boolean): Promise<void>;
writeAll(file: stream, cd?: boolean): Promise<boolean>;
}
class Entry {
filename: string;
uncompressed_size: number;
method: METHOD;
extract(password?: string): Promise<Uint8Array | null>;
set(data: Uint8Array): void;
}
// Supported compression methods:
METHOD.NO_COMPRESSION
METHOD.DEFLATED
METHOD.BZIP2
METHOD.LZMA
// ... and otherstar
TAR archive reader supporting multiple archive formats
class Document extends Hierarchy<Entry> {
entries: Entry[];
constructor(file?: stream);
readAll(file: stream): Promise<void>;
}
class Entry {
name: string;
mode: UnixMode;
uid: number;
gid: number;
size: number;
mtime: Date;
extract(): Promise<Uint8Array | null>;
}sevenZ
7z archive validation (stub implementation - decompression not yet implemented)
class Document extends Hierarchy<Entry> {
entries: Entry[];
static check(data: Uint8Array): boolean;
constructor(file?: stream);
readAll(file: stream): Promise<void>;
}
class Entry {
filename: string;
uncompressed_size: number;
mtime?: Date;
}Note: Currently provides 7z signature validation and basic structure. Full file extraction would require LZMA decompression implementation.
Compression Support
The package includes:
- Decompression: deflate, deflate-raw, gzip, bzip2
- Compression: deflate-raw, gzip
Compression handlers are registered via the @isopodlabs/binary package's configureDecompression() and configureCompression() functions.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
