What is required to get `EnableExperimentalProtocol` to be production ready?

Hey All,

I’m interested in helping bring the tus support of draft-ietf-httpbis-resumable-upload-01 and draft-ietf-httpbis-resumable-upload-02 to production readiness.

Protocol support for draft-ietf-httpbis-resumable-upload-02 is currently gated by EnableExperimentalProtocol.

What are the pending items needed before production readiness? What portions of the protocol today are not currently supported?

As of right now, there is no clear list of tasks that need to be completed for it to be called production ready. The draft implementation in tusd is based on the same foundation as used for the tus protocol, which has been tested extensively. So I don’t expect there to be many major issues. AFAIK, most major points from the draft are supported by tusd.

That being said, what’s missing is a broad test of uploads under various conditions. While conducting that we might find issues with the draft specification itself or even the client implementations.

The draft protocol describes:

“This document defines the Resumable Uploads Protocol, an optional mechanism for resumable uploads using HTTP that is backwards-compatible with conventional HTTP uploads.”

Is tus current compatible with conventional HTTP uploads? It seems like there is no current support for multipart upload (support for multipart upload · Issue #168 · tus/tusd · GitHub) and nieve testing returned “ERR_UNSUPPORTED_VERSION: missing, invalid or unsupported Tus-Resumable header”

It might be easiest to make the load balancer route the request to a different server if an upload request is detected but it does not have any resumable upload headers.

The tus protocol does not have the goal to be compatible with non-resumable uploads as the IETF draft does. To my knowledge no tus server currently also accepts non-resumable uploads. That being said, it would be possible to add functionality to tus servers to also accept non-resumable uploads. There just hasn’t been much demand for this in my experience.