tus-resumable-upload-protocol icon indicating copy to clipboard operation
tus-resumable-upload-protocol copied to clipboard

More 1.0 implementations

Open kvz opened this issue 8 years ago • 33 comments

Now that the protocol is stabilizing, we're looking to have more 1.0 implementations. A few ideas to kick things off:

  • [ ] A Client test suite that can be used to run automated tests against servers, to see if they are 100% tus 1.0 compatible (in Go?)
  • [x] A Python client was requested (update 2016-09-14: @ifedapoolarewaju is thinking about building one now which is ready for use: https://github.com/ifedapoolarewaju/tus-py-client)
  • [ ] A Ruby client was requested and is in the works by @alexanderbez
  • [ ] An Nginx server module (update 2016-09-14: @adrusi is thinking about building one now)
  • [ ] A concurrent server implementation in Erlang
  • [ ] A Java server was requested (update 2016-09-14: @terrischwartz has one in the works)
  • [ ] Some work for a tus rust server was done in https://github.com/Rio/tus-rust
  • [x] A Node.js (CoffeeScript?) server. We could probably base it on @vayam's brewtus?

kvz avatar Sep 19 '15 08:09 kvz

We have implemented a Python server and a Python client. We will release it as soon as possible. :-)

panjunyong avatar Sep 21 '15 02:09 panjunyong

the python implementation for tus protocol 1.0.0 is here: tusfilter: https://github.com/everydo/tusfilter tusclient: https://github.com/everydo/tusclient

but still need more tests.

FuGangqiang avatar Sep 21 '15 03:09 FuGangqiang

the python implementation for tus protocol 1.0.0 is here: tusfilter: https://github.com/everydo/tusfilter

Thanks! It looks though like quite some extensions still need to be implemented as well? https://github.com/everydo/tusfilter/blob/master/tusfilter.py

I'm no Python expert, but would it make sense if tusfilter would be called a flask project more than a standalone server? I'm not sure exactly how standard the Flask microframework is within Python, but I feel the official tus implementations should be able to require little outside of the standard library so that it could be integrated with Flask, or Django, or run standalone. As said, my Python fu here is extremely limited so honestly seeking for advice.

That said, we can definitely list your projects among the http://tus.io/implementations.html already!

kvz avatar Sep 21 '15 06:09 kvz

tusfilter is a wsgi filter, middleware, it can be integrated with Flask, Bottle, Django and Pyraimd, ...

the example used flask, it also can be intergrated with others

FuGangqiang avatar Sep 21 '15 06:09 FuGangqiang

I see, thanks for clarifying this so quickly already

kvz avatar Sep 21 '15 06:09 kvz

tusfilter and tusclient is still at the very early stage, I'll implement the other extensions and add more documents later in spare time.

FuGangqiang avatar Sep 21 '15 07:09 FuGangqiang

From looking at the project, your work looks amazing. Thank all of you for putting effort into these libraries. :+1:

Acconut avatar Sep 21 '15 20:09 Acconut

A Node.js (CoffeeScript?) server. We could probably base it on @vayam's brewtus?

This is being tackled in https://github.com/tus/tus-node-server by Vimeo's @bhstahl. It will be ES6 JS.

kvz avatar Oct 10 '15 13:10 kvz

A Client test suite that can be used to run automated tests against servers, to see if they are 100% tus 1.0 compatible (in Go?)

+1 though currently i'm just using https://github.com/tus/tus-js-client to test https://github.com/choonkeat/attache/pull/10

choonkeat avatar Oct 20 '15 07:10 choonkeat

Thanks for sharing - have you considered making this a re-usable gem? If so, we could list it up on the implementation page!

kvz avatar Oct 20 '15 07:10 kvz

You could check my coffeetus as well

vencax avatar Oct 21 '15 18:10 vencax

Thanks @vencax, added it to tus.io here https://github.com/tus/tus.io/commit/54f68c9c0e38faa2f2ec226427b2623cbb93c930 :+1:

kvz avatar Oct 24 '15 10:10 kvz

Thanks for sharing - have you considered making this a re-usable gem? If so, we could list it up on the implementation page!

@kvz implemented rubygem https://github.com/choonkeat/attache#rubygem the endpoint is /tus/files :bow:

choonkeat avatar Nov 07 '15 14:11 choonkeat

I've got a flask-tus server side implementation. So far it supports the core protocol, along with creation and termination extensions. How do I go about publishing?

BTW - amazing work you guys, this is an awesome project.

matthoskins1980 avatar Jan 14 '16 05:01 matthoskins1980

I've got a flask-tus server side implementation. So far it supports the core protocol, along with creation and termination extensions.

That's awesome! :tada:

How do I go about publishing?

This is totally in your hands. In general, we recommend to publish the code using a hoster for version controlled and open sourced projects, such as GitHub, BitBucket or GitLab. In order to allow other people to use your implementation, you have to add a license. While we recommend the MIT license, you are free to choose from multiple solutions (see http://choosealicense.com/). In addition, it's always nice to have a README file which contains basic instructions on how to get the server up and running. Finally, we can add your project to the list of implementation (see http://tus.io/implementations.html)

BTW - amazing work you guys, this is an awesome project.

Thanks :heart:

Acconut avatar Jan 14 '16 14:01 Acconut

My Flask-Tus server is a Flask python extension. It is located at: https://github.com/matthoskins1980/Flask-Tus

Please add it to any list of server implementation you have, such as http://tus.io/implementations.html

matthoskins1980 avatar Feb 04 '16 23:02 matthoskins1980

@matthoskins1980 Thank you a lot for this project. :) I added it to tus.io.

Acconut avatar Feb 07 '16 15:02 Acconut

https://github.com/everydo/tusfilter is missing from the list of implementations (http://tus.io/implementations.html)

It is python, but compatible with any wsgi stack.

nzjrs avatar Jul 19 '16 07:07 nzjrs

Thanks @nzjrs, last time @FuGangqiang mentioned it, it was still at an early stage. Is it more mature now you would say?

tusfilter and tusclient is still at the very early stage, I'll implement the other extensions and add more documents later in spare time.

kvz avatar Jul 19 '16 07:07 kvz

I can't say if it is more mature, but I used it and it worked.

On 19 July 2016 at 09:35, Kevin van Zonneveld [email protected] wrote:

Thanks @nzjrs https://github.com/nzjrs, last time @FuGangqiang https://github.com/FuGangqiang mentioned it, it was still at an early stage. Is it more mature now you would say?

tusfilter and tusclient is still at the very early stage, I'll implement the other extensions and add more documents later in spare time.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/tus/tus-resumable-upload-protocol/issues/67#issuecomment-233554171, or mute the thread https://github.com/notifications/unsubscribe-auth/AACjowkenvlm7wDQq6k9SmvrZgBLuUJJks5qXH49gaJpZM4GAS6M .

nzjrs avatar Jul 19 '16 07:07 nzjrs

It should be more stable now, and we're using a highly customized fork in production.

JokerQyou avatar Jul 19 '16 09:07 JokerQyou

Sounds good @JokerQyou @nzjrs @FuGangqiang, if three parties are happily using this v1.0.0 implementation in production, I'm confident this will be useful to others too, and fit to be listed as a community project. Added in https://github.com/tus/tus.io/commit/e2ee99bf557a0826c90a218fe17ad3a2c6a0ed79. Let me know if something needs changing 👍

kvz avatar Jul 19 '16 12:07 kvz

I have written a server side implementation in .NET (as a OWIN middleware). Currently it supports the core protocol and the creation extension. Source code available at https://github.com/smatsson/tusdotnet

Could you please add it to the list of implementations?

smatsson avatar Aug 27 '16 10:08 smatsson

Hey that's great! Would you to make a PR against the tus.io repo for it?

If not i'll likely get to it myself next week 👌

Sent from mobile, pardon the brevity.

On 27 aug. 2016, at 12:29, Stefan Matsson [email protected] wrote:

I have written a server side implementation in .NET (as a OWIN middleware). Currently it supports the core protocol and the creation extension. Source code available at https://github.com/smatsson/tusdotnet

Could you please add it to the list of implementations?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

kvz avatar Aug 27 '16 10:08 kvz

@kvz PR sent :)

smatsson avatar Aug 27 '16 11:08 smatsson

Merged! 😄

Sent from mobile, pardon the brevity.

On 27 aug. 2016, at 13:16, Stefan Matsson [email protected] wrote:

@kvz PR sent :)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

kvz avatar Aug 27 '16 11:08 kvz

@kvz Could you please re-publish the site? I was trying to do a PR for the gh-pages branch but I can't seem to run the scripts on my Windows box.

smatsson avatar Aug 30 '16 07:08 smatsson

Could you please re-publish the site?

Done!

kvz avatar Aug 30 '16 08:08 kvz

@ifedapoolarewaju completed the Python client implementation which is available at https://github.com/ifedapoolarewaju/tus-py-client. :)

Acconut avatar Nov 27 '16 15:11 Acconut

I'm working on a Django Rest Framework library for handling TUS uploads: https://github.com/dirkmoors/drf-tus

dirkmoors avatar Mar 09 '17 13:03 dirkmoors