Storj Uplink Library for Rust
Safe and idiomatic Rust crate library for the Storj Uplink Library.
Current status
This crate has implemented all the functionalities offered by the uplink-sys
create and it's fully documented.
It has also several unit-tests but it lacks of integration tests (see Development plan and status section). Integration test would prove that it works as expected.
We consider its current status beta and we advice that it's NOT READY for production yet.
Implementation
This crate wraps the uplink-sys crate present in this same repository for
offering an safe and idiomatic Rust Storj Uplink.
Because it relies on uplink-sys and uplink-sys requires Go,
using this crate also requires Go.
Development requirements
For development the only requirements are Rust and Go.
For running the integration tests you need a Docker version that has the compose
command, which is the docker-compose tool that it's now integrated in Docker.
The command is needed because the Makefile invoked, but you should be able to
use a Docker version without the compose command, using the docker-compose,
however, you will have to run by hand or make an straightforward change in the
Makefile.
Development plan and status
General entities:
- Access
- Bucket
- Bucket Iterator
- Commit Upload Options
- Config
- Custom Metadata
- Download
- Download Options
- Encryption Key
- List Buckets Options
- List Objects Options
- List Uploads Options
- List Upload Parts Options
- Move Object Options
- Object
- Object Iterator
- Part
- Part Iterator
- Part Upload
- Permission
- Project
- Share Prefix
- System Metadata
- Upload
- Upload Info
- Upload Iterator
- Upload Options
Edge entities:
Integration tests:
- Access Grant.
- Create.
- Request an Access Grant with passphrase.
- Parse one.
- Share one.
- Override an encryption key of a specific Bucket and prefix.
- Project
- Create a Bucket.
- Try to create a Bucket which already exists.
- Ensure a Bucket, an existing and non-existing one.
- Stat a Bucket.
- List Buckets.
- Upload an Object.
- Upload an Object with Custom Metadata.
- Multipart upload.
- Download an Object.
- Stat an Object.
- List Objects with System and Custom Metadata.
- List Objects without System and Custom Metadata.
- Move an object.
- Delete an Object.
- Delete an empty Bucket.
- Delete a Bucket with objects.
- Edge.
- Join a share URL.
- Register an Access Grant.
General:
- Add a CI solution (Travis, Github actions, etc.) for running tests,
linters on every PR and when something is merge into the
mainbranch. - Add general documentation about the Storj network and its entities mimicking the original Go Uplink package.
- Add some documentation about the crate design and implementation if the documentation of each module, types, functions, etc., aren't enough.