v0.8 Now Available
Resumable Uploads for Modern Apps
A modular, TypeScript-first upload engine. Handle large files with ease, survive network failures, and deliver a premium experience.
Get Started
$ npm install @torrin-kit/client
upload-example.ts
import { createTorrinClient } from "@torrin-kit/client";
// Initialize client
const torrin = createTorrinClient({
endpoint: "/torrin/uploads",
retryAttempts: 5,
});
// Create upload
const upload = torrin.createUpload({ file });
// Subscribe to progress
upload.on("progress", (p) => {
console.log(`${p.percentage}%`);
});
await upload.start();Everything an Uploader Needs
Built for developers who need control, reliability, and performance.
Resumable Uploads
Automatically resume interrupted uploads from where they left off. No more lost progress.
Chunked Transfer
Split large files into manageable chunks. Optimize for slow connections and server limits.
Concurrent Uploads
Parallelize chunk uploads to maximize bandwidth utilization and speed up transfers.
Type-Safe
Written in TypeScript with full type definitions. Enjoy autocomplete and catch errors early.
Storage Agnostic
Save files to local disk, S3, or write your own driver. Flexible backend support.
Framework Ready
First-class support for Express and NestJS. Easy integration with your existing stack.