mozilla / send

Simple, private file sharing from the makers of Firefox
https://send.firefox.com
Mozilla Public License 2.0
13.23k stars 1.54k forks source link

Look into implementing tus.io open protocol, again #1420

Open rajveermalviya opened 4 years ago

rajveermalviya commented 4 years ago

It would be better if Chunked Upload strategy is used instead of WebSockets streaming. WebSocket approach currently used has many problems.

Chunked Upload strategy uses raw HTTP protocol it benefits from future advancements in underlying protocol (HTTP/3 which has extremely better data streaming). Unlike WebSocket which is tied to the TCP protocol.

As mentioned in #551 , tus.io is a great open protocol, it would be better if it's Node server implementation gets revived, rather than reinventing the wheel by creating a new server implementation.

Or, Go implementation tusd can be used if that's possible?

Number users of Firefox Send has increased than it had in 2017 (when that ticket was opened) it would be better if it's functionality gets improved now.

rajveermalviya commented 4 years ago

cc @Acconut @felixge

Acconut commented 4 years ago

I am happy to assist you with questions around the tus protocol and its implementations. We unfortunately do not have the resources to work on tus-node-server but we are always open for contributions. In the meantime, tusd has been battle-tested in production for years, so it's very solid and our recommendation for a tus server.

rajveermalviya commented 4 years ago

IDK, are the maintainers okay about changing the backend to Golang from Node?

Acconut commented 4 years ago

are the maintainers okay about changing the backend to Golang from Node?

That's not necessary, you can run tusd as a standalone binary, next to your main application process. tusd can then be configured to notify your main application about completed uploads (and other events) using HTTP requests. It is possible to use tusd as a dependency inside your Go application but it's not necessary.