whatisgithub

What is tusd?

tus/tusd — explained in plain English

Analysis updated 2026-06-26

3,781GoAudience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

The official reference server for resumable file uploads, if a large upload is interrupted, the client can reconnect and continue from exactly where it left off instead of starting over.

Mindmap

mindmap
  root((tusd))
    What it does
      Resumable uploads
      Tracks bytes received
      Resume after dropout
    Storage backends
      Local disk
      Amazon S3
      Google Cloud Storage
    Deployment
      Standalone binary
      Go library embed
      tus protocol standard
    Audience
      Backend developers
      Media platforms
      File-heavy apps
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add resumable large-file upload support to your web app so users never lose progress if their connection drops.

USE CASE 2

Run tusd as a standalone upload server and point your frontend tus client library at it to handle uploads.

USE CASE 3

Store uploaded files directly to S3 or Google Cloud Storage so you don't need local disk on the server.

USE CASE 4

Embed the tusd package as a Go library to add resumable upload handling directly inside your own application.

What is it built with?

GoAWS S3Google Cloud Storage

How does it compare?

tus/tusdadtac/commentodagger/container-use
Stars3,7813,7823,778
LanguageGoGoGo
Setup difficultymoderatemoderatemoderate
Complexity3/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires access to S3, GCS, or local disk for storage, cloud storage credentials must be configured before the server starts.

Use, modify, and distribute freely for any purpose, including commercially, as long as you keep the MIT license notice.

So what is it?

tusd is the official reference server for tus, an open protocol that makes file uploads resumable. When someone uploads a large file over a normal HTTP connection and their network drops halfway through, the upload fails and they must start over from the beginning. The tus protocol solves this by tracking how many bytes have already arrived on the server. If the connection breaks, the client can reconnect and pick up exactly where it left off, rather than resending the data from the start. tusd is the Go implementation of the server side of this protocol. Running it gives you an upload endpoint that any tus-compatible client library can talk to. The server accepts files of any size. Once a file arrives, it can be stored in a few places: on the local disk of the server, in Google Cloud Storage, or in Amazon S3 and any other storage system that speaks the S3 API. The README notes that adding support for other cloud providers would be straightforward given how the server is structured. The project is the reference implementation, meaning it is the authoritative example of how the tus protocol is supposed to work. Application developers who want to add resumable upload support to their own software typically either embed the tusd package as a library or run the tusd binary as a standalone server and point their frontend at it. The documentation for installation, configuration, and usage is hosted on the project website rather than in the repository. The current version is tusd v2, which introduced breaking changes from the previous v1 series. The software is released under the MIT license.

Copy-paste prompts

Prompt 1
Show me how to run tusd as a standalone server on Linux and configure it to store uploaded files in an S3 bucket.
Prompt 2
How do I integrate tusd into my existing Go web application as a library rather than running it as a separate binary?
Prompt 3
Walk me through connecting a tus JavaScript client in the browser to a tusd server for resumable video uploads.
Prompt 4
How do I configure tusd to store uploads in Google Cloud Storage and set a maximum allowed file size?
Prompt 5
Help me set up CORS headers in tusd so my frontend running on a different domain can upload files to it.

Frequently asked questions

What is tusd?

The official reference server for resumable file uploads, if a large upload is interrupted, the client can reconnect and continue from exactly where it left off instead of starting over.

What language is tusd written in?

Mainly Go. The stack also includes Go, AWS S3, Google Cloud Storage.

What license does tusd use?

Use, modify, and distribute freely for any purpose, including commercially, as long as you keep the MIT license notice.

How hard is tusd to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is tusd for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.