Skip to content

Commit

Permalink
Add table comparing rustus and tusd features as a drop-down
Browse files Browse the repository at this point in the history
  • Loading branch information
kysrpex committed Jun 28, 2023
1 parent 2c6c91e commit dd49bfd
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 30 deletions.
29 changes: 0 additions & 29 deletions content/news/2023-06-26-rustus/comparison.md

This file was deleted.

36 changes: 35 additions & 1 deletion content/news/2023-06-26-rustus/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,41 @@ main_subsite: eu

For processing the uploads, [UseGalaxy.eu](https://usegalaxy.eu/) has long been using the reference implementation of a tus server, [tusd](https://github.com/tus/tusd). About two weeks ago, we migrated to a different tus server implementation, [rustus](https://s3rius.github.io/rustus/).

The rustus project was started at the end of 2021 by [Pavel Kirilin](https://github.com/s3rius), and since then, it has matured both in terms of stability and features. At the moment, even though there is a significant overlap between the feature sets of tusd and rustus, a couple of tusd features are not available in rustus and vice versa. Given our use case, we considered that the latter were worth the tradeoff of missing on the former. Two features were especially of our interest:
The rustus project was started at the end of 2021 by [Pavel Kirilin](https://github.com/s3rius), and since then, it has matured both in terms of stability and features. At the moment, even though there is a significant overlap between the feature sets of tusd and rustus, a couple of tusd features are not available in rustus and vice versa.

<details>
<summary>
Click here for a comparison of tusd and rustus features.
</summary>

<figure style="display: table; text-align:center; margin-left: auto; margin-right:auto">

| | rustus | tusd |
|------------------------------------------------------------------------------------|--------|-------|
| Programming language | rust | go |
| Docker container provided | ✔️ | |
| Helm chart provided (Kubernetes) | ✔️ | ✔️ |
| Amazon S3 | ✔️ | ✔️ |
| Google Cloud Storage | | ✔️ |
| Microsoft Azure Blob Storage | | ✔️ |
| File hooks | ✔️ | ✔️ |
| HTTP hooks | ✔️ | ✔️ |
| gRPC hooks | | ✔️ |
| AMQP hooks (Celery integration) | ✔️ | |
| Concurrent uploads (e.g. Dynamo, ETCD3 lockers) | | ✔️ |
| Store uploads information in Redis or relational databases | ✔️ | |
| Custom directory structure | ✔️ | |
| Sentry integration | ✔️ | |
| HTTPS support | | ✔️ |
| Metrics | | ✔️ |
| CORS | ✔️ | ✔️ |

</figure>

</details>
<br>

Given our use case, we considered that the latter were worth the tradeoff of missing on the former. Two features were especially of our interest:

- The Galaxy project (not just Galaxy Europe) uses [Sentry](https://sentry.io) to monitor application exceptions, that rustus integrates nicely with.

Expand Down

0 comments on commit dd49bfd

Please sign in to comment.