Skip to content

Klowner/tussle

Repository files navigation

Tussle

Tussle is a mostly spec-compliant server implementation of the tus upload protocol.

CircleCI Coverage Status

Component based

Tussle is implemented as a collection of interchangeable modular components, allowing the developer to choose which services that they'd like to integrate with. At the center of a Tussle instance is the Tussle Core, which handles all communication between individual components.

Components

Middleware

Middleware components handle communication between clients and the Tussle instance.

State

Tracking state is tricky and often your options are limited by your deployment environment. Tussle state components are modeled after the Web Storage API

Storage

Uploaded files have to be stored somewhere, that's the purpose of the storage components.

  • storage-b2 - Backblaze B2 cloud storage (supports large file upload)
  • storage-pool - Pool multiple storages into a single logical pool with auto-failover.
  • storage-r2 - Cloudflare R2 cloud storage (supports large file upload, ^0.4.0 adds parallel support)
  • storage-s3 - AWS S3 compatible cloud storage (supports large file upload)

Request

The request component a responsible for creating outbound HTTP requests and -- when possible/appropriate -- transparently proxy upload payloads, which is determined by the storage component.

Support me

If you find this library useful, please consider buying me a coffee as a way of showing your support! "Buy Me A Coffee"