A drop-in library for resumable downloads and streaming integrity verification of large files in the browser.
VerifyFetch is a JavaScript library that provides resumable downloads and streaming integrity verification for large files in the browser. It solves the problems of browser crashes from memory overload, wasted bandwidth from non-resumable downloads, and silent corruption from compromised or faulty CDNs. It ensures every byte of a downloaded file matches its expected hash before use.
Developers building web applications that download large assets like AI models (e.g., using Transformers.js or WebLLM), WASM binaries, or other critical files where integrity and reliability are essential.
Developers choose VerifyFetch because it provides a drop-in solution for a notoriously difficult problem—reliable and secure large file downloads in the browser. Its unique combination of resumability, constant-memory streaming verification, and easy integration with popular AI libraries saves significant development time and improves user experience.
Your users download a 4GB AI model, the connection drops at 3.8GB, verifyfetch resumes from 3.8GB and verifies every byte. Drop-in integrity verification for Transformers.js, WebLLM, and any large file in the browser.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Verifies files in chunks using only ~2MB of RAM, preventing browser crashes even for multi-gigabyte downloads, as explicitly stated in the README's Key Features.
Resumes downloads from the last verified byte after network interruptions, eliminating the need to restart large transfers, highlighted as a core feature to fix 'No resume' issues.
Immediately stops downloading and throws an error on hash mismatch, preventing wasted bandwidth and protecting against supply chain attacks, as described in the README's security model.
Provides seamless plugins for Transformers.js and WebLLM with minimal code changes, evidenced by the straightforward API examples using verifiedPipeline and createVerifiedMLCEngine.
Requires pre-computing SHA-256 hashes and maintaining a manifest file via CLI, adding an extra step to the build and deployment process that can be error-prone.
Relies on IndexedDB for resumable downloads, which may fail in browsers with strict storage policies or privacy modes, and introduces cross-browser compatibility concerns.
Currently focused on AI libraries like Transformers.js and WebLLM; integrating with other frameworks or custom setups requires more manual work, as admitted by the need for Service Worker configuration.