This implementation has several features to make usage as simple as possible.
- Rustus is robust, since it uses asynchronous Rust;
- It can store information about uploads in databases;
- You can specify directory structure to organize your uploads;
- It has a lot of hooks options, and hooks can be combined.
- Highly configurable;
Please check out Documentation for more information about configuration and deploy.
You can install rustus by 4 different ways.
To build it from source rust must be installed. Preferred version is 1.59.0.
git clone https://github.com/s3rius/rustus.git
cd rustus
cargo install --path . --features=all,metrics
Also you can speedup build by disabling some features.
Available features:
amqp_notifier
- adds amqp protocol support for notifying about upload status;db_info_storage
- adds support for storing information about upload in different databases (Postgres, MySQL, SQLite);http_notifier
- adds support for notifying about upload status via http protocol;redis_info_storage
- adds support for storing information about upload in redis database;hashers
- adds support for checksum verification;metrics
- adds rustus specific metrics to prometheus endpoint;all
- enables all rustus features exceptmetrics
.
All precompiled binaries have all features enabled.
If you have cargo installed maybe it would be easier to install it directly from crates.io.
cargo install rustus --features=all
All precompiled binaries available on github releases page. You can download binaries from here, unpack it and run.
./rustus
Make sure that you download version for your cpu and os.
One of the most simple ways to run rustus is docker.
Rustus has two containers for each version.
- debian based image
- alpine based image
Alpine based images are more lightweight than debian
To run rustus you just need to run this command
docker run --rm -p "1081:1081" -d s3rius/rustus --log-level "DEBUG"