NOTE this repository has been moved to the Storj third-party Github organization and since the move the repository is archived because the development will follow there.
This projects aims to build a Rust crate library for the Storj Uplink Library.
THIS IS WIP, there is not any estimation of time nor a commitment when this Rust binding will have all the functionalities, so don't use it for any non-pet project.
There is already a Rust binding Storj Uplink Library which is auto-generated by Rust Bindgen from the official Storj Uplink C library.
The result of Bindgen is a Rust binding which IS NOT IDIOMATIC and requires using UNSAFE everywhere.
This crate offers an idiomatic and safe (you don't have to use the unsafe keyword for using it) Rust crate library based on the Bindgen former.
Entities:
- Access
- Bucket
- Bucket Iterator
- Config
- Custom Metadata
- Download
- Download Options
- Encryption Key
- List Buckets Options
- List Objects Options
- Object
- Object Iterator
- Permission
- Project
- Share Prefix
- System Metadata
- Upload
- Upload Options
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.
- Download an Object.
- Stat an Object.
- List Objects with and without System and Custom Metadata.
- Delete an Object.
- Delete an empty Bucket.
- Delete a Bucket with objects.
General:
- Add a CI solution (Travis, Github actions, etc.) for running tests, linters on every PR and when something is merge into the
main
branch. - 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.