node-zip-rs
v0.0.7
Published
Zip library for Node.js with Rust binding
Downloads
328
Readme
node-zip-rs
$ yarn add node-zip-rs
API
export declare function openArchive(path: string): Archive
export declare function openArchiveAsync(path: string, signal?: AbortSignal | undefined | null): Promise<Archive>
export const enum CompressionMethod {
Stored = 0,
Deflated = 1,
Deflate64 = 2,
Bzip2 = 3,
Aes = 4,
Zstd = 5,
Lzma = 6,
Xz = 7
}
export interface WriteFileOptions {
compressionMethod?: CompressionMethod
compressionLevel?: number
permissions?: number
largeFile?: boolean
}
export declare function write(srcDir: string, dst: string, options?: WriteFileOptions | undefined | null): void
export declare function writeAsync(srcDir: string, dst: string, options?: WriteFileOptions | undefined | null, signal?: AbortSignal | undefined | null): Promise<void>
export declare class Archive {
isEmpty(): boolean
readFile(name: string): Buffer
readFileAsync(name: string, signal?: AbortSignal | undefined | null): Promise<Buffer>
extract(outdir: string): void
extractAsync(outdir: string, signal?: AbortSignal | undefined | null): Promise<void>
fileNames(): Array<string>
}
Benchmark
RUN v2.1.8 /Users/seokju.me/workspace/node-rs-zip
✓ benchmarks/archive.bench.ts (2) 1224ms
✓ readFileAsync (2) 1222ms
name hz min max mean p75 p99 p995 p999 rme samples
· yauzl 89.5126 9.9123 13.7344 11.1716 11.5436 13.7344 13.7344 13.7344 ±2.52% 45
· node-zip-rs 170.79 5.4248 13.6432 5.8551 5.7539 13.6432 13.6432 13.6432 ±4.23% 86 fastest
BENCH Summary
node-zip-rs - benchmarks/archive.bench.ts > readFileAsync
1.91x faster than yauzl
Tested with MacBook Pro 16 (M1 Max, 2021).
License
MIT License