mega 0.5.0

A client API library for interacting with MEGA
Documentation

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

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.