About
This is an API client library for interacting with MEGA's API using Rust.
This library aims to implement most (if not all) interactions with MEGA's API in pure Rust.
This allows to Rust applications to access MEGA without needing to depend on the MEGAcmd command-line tool being installed on the host system.
It can also allow for more fine-grained control over how the operations are carried-out, like downloading nodes concurrently.
Features
- Login with MEGA
- MFA support
- Session serialization
- Session resumption (deserialization)
- Get storage quotas
- Listing nodes
- Downloading nodes
- Uploading nodes
- Creating folders
- Renaming, moving and deleting nodes
- Chunked file downloads (downloading/uploading multiple chunks in parallel)
- Timeout support
- Retries (exponential-backoff) support
- Downloading thumbnails and preview images
- Uploading thumbnails and preview images
- Support for public shared links
- Support for password-protected shared links
- Create public shared links to owned nodes
- Uploading to shared private folders
- Server-to-Client events support
Examples
You can see examples of how to use this library by looking at the different examples available.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.