Expand description
§megalib
Rust client library for Mega.nz cloud storage.
§Features
- Authentication: Login with email/password, support for HTTP proxies, and specific session handling.
- Full account registration flow (register + verify).
- Filesystem Operations:
- List files and folders (support for recursive listing).
- Create directories (
mkdir). - Move (
mv), rename, and delete (rm) files/folders. - Get file attributes (
stat) and user quota information.
- File Transfers:
- Robust upload and download with automatic resume support.
- Parallel transfer workers for improved performance.
- Progress tracking with custom callbacks.
- Optional preview generation for media uploads.
- Sharing & Public Access:
- Export public download links (
export). - Parse and download files from public MEGA links.
- Open and browse public folders (
open_folder) without login.
- Export public download links (
§Example: Basic Usage
use megalib::Session;
// Login
let mut session = Session::login("user@example.com", "password").await?;
// List files in root
let files = session.list("/", false)?;
for file in files {
println!("{} ({} bytes)", file.name, file.size);
}
// Upload a file with resume support
session.upload_resumable("local_file.txt", "/Root").await?;
// Download a file to local disk
if let Some(node) = session.stat("/Root/remote_file.txt").cloned() {
session.download_to_file(&node, "downloaded_file.txt").await?;
}
§Example: Account Registration
Registration is a two-step process:
use megalib::session::{register, verify_registration};
// Step 1: Initiate registration (sends verification email)
let state = register("user@example.com", "SecurePassword123", "John Doe", None).await?;
println!("Check your email! State to save: {}", state.serialize());
// Step 2: After receiving email, complete registration
// let signup_key = "..."; // Extract from email link
// verify_registration(&state, signup_key).await?;Re-exports§
pub use error::MegaError;pub use error::Result;pub use fs::Node;pub use fs::NodeType;pub use fs::Quota;pub use progress::make_progress_bar;pub use progress::ProgressCallback;pub use progress::TransferProgress;pub use public::download_public_file;pub use public::get_public_file_info;pub use public::open_folder;pub use public::parse_folder_link;pub use public::parse_mega_link;pub use public::PublicFile;pub use public::PublicFolder;pub use session::register;pub use session::verify_registration;pub use session::RegistrationState;pub use session::Session;
Modules§
- api
- MEGA API client and types.
- base64
- MEGA-style URL-safe base64 encoding/decoding.
- crypto
- Cryptographic operations for MEGA protocol.
- error
- Error types for the megalib library.
- fs
- Filesystem operations module.
- http
- HTTP client wrapper for MEGA API requests.
- preview
- Preview/thumbnail generation for file uploads.
- progress
- Progress reporting for file transfers.
- public
- Public link download without authentication.
- session
- Session management and registration.