Switch branches/tags
Nothing to show
Clone or download
Germano Fronza
Germano Fronza Merge pull request #19 from alexandrevicenzi/master
Implement upload updates via channel.
Latest commit 955ce83 Oct 2, 2017


go-tus Build Status Go Report Card GoDoc

A pure Go client for the tus resumable upload protocol


package main

import (

func main() {
    f, err := os.Open("my-file.txt")

    if err != nil {

    defer f.Close()

    // create the tus client.
    client, _ := tus.NewClient("https://tus.example.org/files", nil)

    // create an upload from a file.
    upload, _ := tus.NewUploadFromFile(f)

    // create the uploader.
    uploader, _ := client.CreateUpload(upload)

    // start the uploading process.


This is not a full protocol client implementation.

Checksum, Termination and Concatenation extensions are not implemented yet.

This client allows to resume an upload if a Store is used.

Built in Store

Store is used to map an upload's fingerprint with the corresponding upload URL.

Name Backend Dependencies
MemoryStore In-Memory None
LeveldbStore LevelDB goleveldb

Future Work

  • SQLite store
  • Redis store
  • Memcached store
  • Checksum extension
  • Termination extension
  • Concatenation extension