September 28, 2026
A C++ SDK from MEGA for accessing its end-to-end encrypted cloud storage service and building custom clients.
mkdir mega && cd mega
git clone https://github.com/meganz/sdk
git clone https://github.com/microsoft/vcpkg
cmake -DVCPKG_ROOT=vcpkg -DCMAKE_BUILD_TYPE=Debug -S sdk -B build_dir
cmake --build build_dirProduct facts
- Type
- API, SDK & Library
- Category
- Productivity & Workflow › File and Cloud Storage
- Pricing
- Open source
- License
- BSD
- Launched
- Sep 28, 2026
- Listed
- Sep 28, 2026
- Website
- github.com
Overview
MEGA SDK (Client Access Engine) is a C++ development kit provided by the MEGA cloud storage service. It allows developers to build their own client applications or analyze the security of MEGA products. MEGA uses User Controlled Encryption (UCE). All files stored on MEGA and data in transit are end-to-end encrypted. Unlike most cloud storage services where the provider holds the decryption keys, MEGA's encryption keys are controlled entirely by users, who decide who can access their files. ## SDK Components The SDK consists of three main parts: - **Low-level SDK**: The core component, open-sourced months after MEGA's launch. - **Middle layer**: An API layer designed to simplify usage and enable bindings for other programming languages. Documentation is generated via Doxygen, with the core header file at `include/megaapi.h`. - **Example apps**: Covering Android, GNU/Linux, iOS, macOS, and Windows platforms. ## Examples and Tools - `megacli`: A command-line tool based on the low-level SDK, supporting all SDK features. - `examples/simple_client`: A pure C++ example app using the public API. - `examples/android`: An Android example app using SWIG-based Java bindings. - `examples/iOS`: An iOS example app using Objective-C bindings. - [MEGAcmd](https://github.com/meganz/megacmd): A high-level command-line application built on this SDK, scriptable via languages like PHP/Python. ## Building The project uses CMake (3.19 or later) as the cross-platform configuration tool and VCPKG to manage third-party dependencies. Supported operating systems include Windows 10, macOS 10.15+, various GNU/Linux distributions, Android 9.0+, and iOS 15+. ## Folder Sync Limitations The current sync implementation has several limitations: no locking mechanism when multiple clients concurrently access the same remote folder; potential data loss when syncing between different filesystem naming semantics; no incremental writes, so modified files are fully overwritten; deleted remote files are moved to `//bin/SyncDebris`.
Key features
- End-to-end encryption: All files and transferred data are encrypted, with keys controlled by users rather than the service provider.
- C++ low-level SDK: Provides low-level access to the MEGA cloud storage service.
- Middle-layer API: A simplified intermediate layer that makes it easy to create bindings for other programming languages.
- Multi-platform support: Supports Android, GNU/Linux, iOS, macOS, and Windows.
- megacli command-line tool: A CLI tool based on the low-level SDK that exposes all SDK features.
- Java bindings: Provides Java bindings for Android via SWIG.
- Objective-C bindings: Provides Objective-C bindings for iOS.
- CMake build system: Uses CMake for cross-platform project configuration and compilation.
- VCPKG dependency management: Uses VCPKG to manage third-party dependencies across platforms.
- Folder synchronization: Syncs local and cloud folders, with some limitations regarding concurrency and naming semantics.
Releases
Notify meQ&A
- What programming language is MEGA SDK written in?AI-generated
- MEGA SDK is written in C++.
- How do I build MEGA SDK?AI-generated
- You need CMake (3.19 or later) and VCPKG. Clone the SDK and VCPKG repositories, run the cmake command to configure the project, and then compile it using cmake --build.
- Which platforms does the SDK support?AI-generated
- It supports Android 9.0+, iOS 15+, macOS 10.15+ (Intel) / 11.1+ (Apple silicon), Windows 10 / Server 2019, and various GNU/Linux distributions (such as Debian 11, Ubuntu 20.04 LTS, Fedora 40, etc.).
- Is there documentation for the low-level SDK?AI-generated
- The low-level SDK currently lacks inline documentation; refer to the example app examples/megacli to understand its usage. The middle-layer API documentation is generated with Doxygen, and the core header file is include/megaapi.h.
- How does MEGA's encryption work?AI-generated
- MEGA uses User Controlled Encryption (UCE), meaning all stored and transferred data is end-to-end encrypted. Unlike industry norms, the decryption keys are held by users themselves, not by the cloud storage provider.
- What are the known limitations of the sync feature?AI-generated
- There is no locking mechanism when multiple clients access the same remote folder; syncing between different filesystem naming semantics may cause data loss; filenames on POSIX platforms must be UTF-8 encoded; incremental writes are not supported, so modified files are fully overwritten.
This product has no owner yet
It was listed by the platform or its author left. If it is your work, prove your relationship to become the owner.
Claim this productThe product content on this page was translated by AI from the author's original.
