12 releases (6 breaking)
0.8.0 | Oct 9, 2024 |
---|---|
0.7.3 | Mar 19, 2024 |
0.7.0 | Jun 17, 2023 |
0.2.0 | Feb 28, 2023 |
0.1.0 |
|
#159 in HTTP client
Used in mega-cli
175KB
3.5K
SLoC
mega-rs
About
This is an (unofficial) 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 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
All features marked as not yet implemented are ideas of things that could be done, and not necessarily an indication of it currently being worked on.
These are also non-exhaustive, so if there is a feature that you'd like to see done, feel free to open an issue to show your interest in it, regardless of whether it is mentionned in this list or not.
If you wish to contribute to this project, feel free to use this list to see if there is something you would be interested to either work on, or simply sharing some of your knowledge on how it could be achieved.
- Login with MEGA
- MFA support
- Session resumption (deserialization)
- Session serialization
- Get storage quotas
- Listing nodes
- Downloading nodes
- Uploading nodes
- Creating folders
- Renaming, moving and deleting nodes
- Timeout support
- Retries (exponential-backoff) support
- Downloading thumbnails and preview images
- Uploading thumbnails and preview images
- Listing and downloading from public shared links
- Listing and downloading from password-protected shared links
- Creating public shared links to owned nodes
- Creating password-protected shared links to owned nodes
- Support for privately-shared nodes (direct shares between MEGA contacts)
- 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.
Dependencies
~10–22MB
~311K SLoC