finds.dev← search

// the find

TTLabs/EvaporateJS

★ 1,827 · JavaScript · updated Jan 2024

Javascript library for browser to S3 multipart resumable uploads

EvaporateJS handles browser-to-S3 multipart uploads: chunking, parallel part uploads, MD5 checksums, pause/resume, and resuming interrupted uploads. It's for anyone building a file upload UI that needs to handle large files without running them through your server. The target is the 'upload directly to S3 from the browser' pattern.

Parallel multipart uploads with configurable concurrency actually works well for large files and is the main reason to use this over a simpler solution. The pluggable signing approach (signerUrl or customAuthMethod) is the right design — keeps AWS credentials off the client and supports Lambda, your own endpoint, whatever. Resume support using S3's existing multipart upload infrastructure is genuine, not a bolted-on hack. Signing examples in 7+ languages means you can get the server side working without guessing.

The v3 TypeScript migration has been 'in final stages' since at least 2022 and is still a PR that hasn't merged — that banner in the README is a red flag about project momentum. Last meaningful push was Jan 2024, and the v2 codebase is a single 3000-line JS file with no bundler, which makes it painful to tree-shake or audit. AWS SDK v3 is the current standard but this predates it entirely; you're responsible for wiring the signing yourself with no guidance for SDK v3. The Travis CI badge is broken (Travis is effectively dead for open source) and nobody fixed it, which tells you something about the maintenance culture.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →