fast-md5-web
Version:
A TypeScript project with tsup bundler for Rust WASM MD5 calculation
55 lines (52 loc) • 1.86 kB
TypeScript
export { Md5Calculator, default as WasmInit } from '../wasm/pkg';
interface SharedMemoryConfig {
enabled: boolean;
memorySize: number;
chunkSize: number;
}
declare class Md5CalculatorPool {
private workers;
private availableWorkers;
private pendingTasks;
private activeTasks;
private taskCallbacks;
private poolSize;
private sharedMemoryConfig;
private sharedMemory;
private sharedMemoryView;
private memoryBlocks;
private maxConcurrentTasks;
constructor(poolSize?: number, sharedMemoryConfig?: SharedMemoryConfig, maxConcurrentTasks?: number);
private isSharedArrayBufferSupported;
private initializeSharedMemory;
private initializeWorkers;
private createWorker;
private processNextTask;
private processLargeFile;
private processSmallFile;
calculateMd5(data: Uint8Array | File, md5Length?: number, timeout?: number, onProgress?: (progress: number) => void, priority?: number): Promise<string>;
destroy(): void;
private allocateSharedMemory;
private releaseSharedMemory;
private defragmentMemory;
private mergeAdjacentBlocks;
getPoolStatus(): {
totalWorkers: number;
availableWorkers: number;
pendingTasks: number;
activeTasks: number;
maxConcurrentTasks: number;
sharedMemoryEnabled: boolean;
sharedMemoryUsage?: {
total: number;
used: number;
available: number;
fragmentation: number;
};
};
enableSharedMemory(memorySize?: number, chunkSize?: number): boolean;
disableSharedMemory(): void;
calculateMd5Batch(files: (Uint8Array | File)[], md5Length?: number, onProgress?: (completed: number, total: number) => void): Promise<string[]>;
cancelTask(taskId: string): boolean;
}
export { Md5CalculatorPool };