Overview
UnifyCloud is a cross-platform, multi-cloud storage manager and file synchronizer built with Flutter and powered by an embedded native Go (Rclone) engine via high-performance Dart FFI.
It seamlessly aggregates major cloud storage providers (Google Drive, Dropbox, Microsoft OneDrive, SFTP, WebDAV, Amazon S3, and Local Filesystem) into a single, responsive, and secure desktop and mobile experience.
Key Features
- Unified Multi-Cloud Dashboard: Connect multiple cloud accounts simultaneously and monitor aggregate storage capacity alongside per-drive usage in real time.
- Native Embedded Rclone Engine: Powered by a custom-compiled Go CGO shared library leveraging Rclone’s battle-tested synchronization and transfer core.
- Zero-Plaintext In-RAM Security: Sensitive OAuth tokens and cloud passwords are encrypted using the OS Keychain / Android Keystore / Linux Secret Service (
flutter_secure_storage). Configurations are decrypted directly into RAM storage in the Go core—credentials are never written in plaintext to disk. - Direct Cloud-to-Cloud Transfers: Copy or move files directly between different cloud providers (e.g., Google Drive to OneDrive or Dropbox to SFTP) with automatic background queuing and clipboard support.
- Real-Time Transfer Manager: Track transfer speeds, transferred bytes, and estimated time remaining (ETA) via a bottom sheet and floating progress bar, with support for cancellation and retry.
- Background Transfer Execution: Transfers continue running even when the app is minimized or backgrounded, using Android Foreground Services and native OS background tasks.
- True Local Disk Browsing: Full filesystem exploration (
/storage/emulated/0on Android, root/on Linux/macOS, drive letters on Windows) with disk quota detection. - Flexible OAuth2 Authentication: Sign in to Google Drive and other services using either official built-in Rclone client credentials or custom client credentials.
Architecture
The project is structured with clean separation across layers:
- Flutter Presentation Layer (Dart): Material 3 UI with responsive layouts, Riverpod 3 for state management, and GoRouter for declarative routing.
- FFI Interop Layer: Dart FFI bindings generated by
ffigenbridging Dart background isolates to native CGO symbols for non-blocking I/O. - Native Go Core Engine: Dynamic library handling in-memory configuration storage, job scheduling, transfer accounting, and native Rclone remote drivers.