iOSAndroidWebv1.0.0
Background Uploads
for React Native
Seamless file uploads that continue even when your app goes to background. Pausable, resumable, and built for the S3 API.
Your App
S3
Scroll to upload...
Everything you need for reliable uploads
Written in Rust — compiled to native modules on iOS and Android, and to WebAssembly for the web.
True Background Uploads
Uploads continue when your app is backgrounded or the screen is locked. Native implementation for iOS and Android.
Pause & Resume
Full control over your uploads. Pause when needed, resume exactly where you left off. Continue uploads even after restarting your device or browser.
Multipart Uploads
Large files are automatically split into parts for faster, more reliable uploads with automatic retry.
Progress Tracking
Real-time progress updates with relevant data. On native platforms, a progress notification is shown.
Presigned URL Support
You provide the upload urls to the library. In your backend, you can generate presigned urls.
S3 API Compatible
Works with Amazon S3, MinIO, DigitalOcean Spaces, Backblaze B2, and any other S3-compatible storage.
Simple, intuitive API
Get started with just a few lines of code
upload.ts
1import { S3BgUploader } from 'react-native-s3-bg-uploader';23// enqueue files4S3BgUploader.uploadFile(file1, "transfer1"); 5S3BgUploader.uploadFile(file2, "transfer1"); 67// start the upload8S3BgUploader.resume();910// Pause when needed11upload.pause();Why we built this
We built this library for the redesign of ysendit, our own file sharing service. We needed uploads that survive backgrounding, app restarts, and flaky connections — reliably, on every platform. No existing library checked all the boxes, so we wrote one in Rust, open-sourced it, and continuously improve it.
If you are also a file uploading enthusiast, we are very open for your contribution to this project!