# tus/tus-resumable-upload-protocol

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tus-tus-resumable-upload-protocol).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,713 stars · 109 forks · MIT

## Links

- GitHub: https://github.com/tus/tus-resumable-upload-protocol
- Homepage: https://tus.io
- awesome-repositories: https://awesome-repositories.com/repository/tus-tus-resumable-upload-protocol.md

## Topics

`cross-platform` `file-upload` `http` `mit` `open-source` `protocol` `resumable` `tus`

## Description

The project defines an open protocol specification for reliable, chunked, and resumable file transmission over standard HTTP infrastructure. It standardizes client-to-server file transfers across networks, enabling interrupted uploads to resume seamlessly without data loss or retransmitting completed chunks. 

The protocol manages file upload lifecycles through resource-based session initialization, offset-based byte range tracking, and cryptographic checksum verification to validate incoming data blocks. Additional capabilities include parallel chunk concatenation for joining multiple partial uploads into a single file, creation-time data attachment to reduce network round trips, and automatic expiration garbage collection to reclaim storage from abandoned upload resources.

The specification also supports API integration features such as OpenAPI definition export and client and server code generation across languages.

## Tags

### Networking & Communication

- [HTTP File Uploads](https://awesome-repositories.com/f/networking-communication/http-file-uploads.md) — Provides an open protocol specification for reliable client-to-server file transmission across networks using standard HTTP.
- [HTTP Resumable Transfers](https://awesome-repositories.com/f/networking-communication/resumable-file-transfers/http-resumable-transfers.md) — Standardizing file transfers over HTTP so that interrupted uploads resume seamlessly without data loss.
- [Byte-Range Requesting](https://awesome-repositories.com/f/networking-communication/byte-range-requesting.md) — Transfers files in sequential chunks by tracking byte offsets over standard HTTP headers to allow seamless resumption after network failures.
- [Large File Uploads](https://awesome-repositories.com/f/networking-communication/http-file-uploads/large-file-uploads.md) — Connecting file transfer features into existing web applications with support for parallel chunk transfers and integrity checks.
- [HTTP Upload Clients](https://awesome-repositories.com/f/networking-communication/remote-media-fetching/remote-media-server-integration/http-upload-clients.md) — The resumable upload library connects file transfer features into existing web applications using standard HTTP proxies, firewalls, and client libraries. ([source](https://tus.io/))
- [Protocol Specifications](https://awesome-repositories.com/f/networking-communication/resumable-file-transfers/chunked-resumable-transfers/protocol-specifications.md) — Defines the protocol specification for chunked file transfers over standard HTTP infrastructure with pause and restart support.
- [Resumable Upload Clients](https://awesome-repositories.com/f/networking-communication/upload-progress-tracking/resumable-upload-clients.md) — The resumable upload library recovers interrupted file transfers by querying the current offset and continuing transmission from that point without restarting. ([source](https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md))
- [Creation-Time Data Attachments](https://awesome-repositories.com/f/networking-communication/resumable-file-transfers/chunked-resumable-transfers/creation-time-data-attachments.md) — The resumable upload library transfers file chunks alongside the initial creation request to reduce the number of round trips needed to start uploading. ([source](https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md))

### Part of an Awesome List

- [Concatenations](https://awesome-repositories.com/f/awesome-lists/devtools/file-upload/chunked-uploaders/concatenations.md) — The resumable upload library combines separate partial uploads into a single final file to support parallel chunk transfers and non-contiguous uploads. ([source](https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md))

### Data & Databases

- [Upload Verification](https://awesome-repositories.com/f/data-databases/file-upload-management/upload-verification.md) — The resumable upload library checks uploaded chunks against cryptographic checksums provided in requests to ensure data is received without corruption. ([source](https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md))
- [Session Terminations](https://awesome-repositories.com/f/data-databases/file-upload-management/upload-verification/session-terminations.md) — The resumable upload library deletes completed or unfinished upload sessions on demand to release occupied server resources. ([source](https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md))

### Security & Cryptography

- [Cryptographic Verification](https://awesome-repositories.com/f/security-cryptography/cryptographic-verification.md) — Validates incoming data blocks against cryptographic hash values included in transfer requests to guarantee transmission integrity.

### Web Development

- [Session Initializations](https://awesome-repositories.com/f/web-development/upload-server-initializers/session-initializations.md) — The resumable upload library creates new upload resources on the server to establish endpoints for subsequent data transfer requests. ([source](https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md))

### Operating Systems & Systems Programming

- [Parallel Concatenations](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-file-reconstructions/chunk-concatenation/parallel-concatenations.md) — Joins multiple separate partial uploads into a single final file on the server to support concurrent transmission and non-contiguous transfers.

### Software Engineering & Architecture

- [Resource-Based Initializers](https://awesome-repositories.com/f/software-engineering-architecture/session-initializers/resource-based-initializers.md) — Creates dedicated server endpoints for each transfer session to track progress and manage resource lifecycle independently.
