All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added support for RSA-encrypted nodes (like the ones received through public upload links).
- Upgraded dependencies.
- Fixed deserialization errors in
Client::get_current_user_info
for incomplete user profiles (missing country, missing birth date, or missing firstname/lastname).
- Added
Error::InvalidRsaPrivateKeyFormat
variant.
- Fixed panic due to unexpected RSA private key format (eg. during login ceremony).
- Fixed
ESID
errors.
- Logs are now available using the
tracing
crate.
- Fixed panic with RSA-encrypted nodes (which happens when nodes are shared with contacts or uploaded from other users).
- Added
Client::has_user_session
method. - Added
Client::list_sessions
method. - Added
Client::kill_sessions
method. - Added
Client::kill_all_sessions
method. - Added
Client::get_current_user_info
method. - Added
SessionInfo
struct. - Added
UserInfo
struct.
- Added
Client::resume_session
method. - Added
Client::serialize_session
method. - Added
Client::fetch_protected_nodes
method.
- Added
#[non_exhaustive]
attribute onError
enum. - Changed
Error
variants from tuples to named fields. - Changed
Client
to implement theSend
andSync
traits. - Changed
ClientBuilder::timeout
method to take anOption<Duration>
instead of justDuration
. - Upgraded dependencies
- Removed
Error::Pbkdf2Error
enum variant.
- Added
Node::owner
getter method. - Added
Node::modified_at
getter method. - Added
Node::aes_key
getter method. - Added
Node::aes_iv
getter method. - Added
Node::condensed_mac
getter method. - Added
Node::sparse_checksum
getter method. - Added
compute_sparse_checksum
standalone function. - Added
compute_condensed_mac
standalone function. - Added
LastModified
enum. - Added
Event
enum. - Added
EventBatch
struct. - Added
EventNode
struct. - Added
EventNodeAttributes
struct. - Added
Client::poll_event
method. - Added
Client::wait_event
method. - Added
Nodes::apply_events
method.
- Renamed
Node::hash
toNode::handle
. - Renamed
Nodes::get_node_by_hash
toNodes::get_node_by_handle
. - Renamed
Client::create_dir
toClient::create_folder
. - Changed
mega::Result<T>
tomega::Result<T, E = mega::Error>
. - Changed
Node::created_at
to return an ownedDateTime<Utc>
instead of borrowing. - Changed
Client::upload_node
to now accept a last modification date (usingLastModified
).
- Resolved issues when decrypting attributes for shared nodes.
- Fixed handling of folder keys.
- Fixed folder key generation in
Client::create_folder
. - Fixed last modification dates being overwritten when renaming nodes.
- Removed
Clone
impl forNode
. - Removed
Nodes::iter_mut
method.
- Fixed occasional
MALFORMED_ATTRIBUTES
issue due to incorrect attributes buffer padding.
- Added
Client::{download_thumbnail, download_preview_image}
. - Added
Client::{upload_thumbnail, upload_preview_image}
. - Added
Node::{has_thumbnail, has_preview_image}
. - Implemented
Default
trait forClientBuilder
. - Added
NodeKind::{is_file, is_folder, is_root, is_rubbish_bin, is_inbox}
.
- Changed
Error
to implement bothSend
andSync
. - Slightly simplified
HttpClient
trait.
- Fixed issue with incorrect MAC computation.
- Added appropriate size limits on I/O readers and writers.
- Removed
Client::move_to_rubbish_bin
function.
- Added HTTPS usage (during downloads and uploads) as a configurable option.
- Added support for listing and downloading from public MEGA links.
- Added
Nodes
type to represent collections of fetched nodes. - Exported
NodeKind
type.
- Most
Client
functions can now be called concurrently.
- Fixed issues with MAC computation when uploading files.
- Added
Client::move_to_rubbish_bin
function.
- Fixed an issue where errors could be encountered after some successful operations, like moving or renaming a node.
- Initial library release.
Legacy yanked release.