jimmywarting/streamsaver.js

StreamSaver writes stream to the filesystem directly asynchronous

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 15th, 2026
Created on May 31st, 2016
Open Issues & Pull Requests: 100 (+0)
GitHub issues: Enabled
Number of forks: 443
Total Stargazers: 4,370 (+0)
Total Subscribers: 57 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.9 days
Mean response time: 53.3 days
90th percentile: 215.3 days
Tracked items: 16

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 21
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 862 days
Stale 30+ days: 20
Stale 90+ days: 20

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Known Issue (1)
  • needs: investigation (1)
  • needs: work (1)
  • serviceWorker (1)
  • type: bug (1)
  • type: feature (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

StreamSaver.js is a JavaScript library that enables direct asynchronous writing of streams to the filesystem from the browser.

The library solves the problem of saving large files from web applications without loading them entirely into memory first. Traditional approaches require buffering complete file contents before triggering a download, which consumes significant RAM and can fail for large datasets. StreamSaver.js uses service workers and the Streams API to write data directly to disk as it arrives, processing files asynchronously without holding them in memory. This approach allows browsers to handle file downloads that would otherwise exhaust available RAM.

Developers working with large file exports, real-time data streaming, or bandwidth-constrained environments should consider this tool. It suits projects that generate substantial amounts of data client-side—such as data processing applications, log exporters, or media converters—where memory efficiency matters. The library is particularly valuable when dealing with files that exceed practical in-memory limits, as it bypasses the traditional download mechanism's memory constraints.

The project shows active maintenance with regular updates addressing browser compatibility and API changes. Development includes ongoing refinement of service worker integration and stream handling to accommodate evolving web standards. The codebase receives attention to edge cases and cross-browser concerns that arise from relying on relatively recent browser APIs.