UnifyCloud

flutter dart go rclone cloud-storage open-source

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/0 on 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:

  1. Flutter Presentation Layer (Dart): Material 3 UI with responsive layouts, Riverpod 3 for state management, and GoRouter for declarative routing.
  2. FFI Interop Layer: Dart FFI bindings generated by ffigen bridging Dart background isolates to native CGO symbols for non-blocking I/O.
  3. Native Go Core Engine: Dynamic library handling in-memory configuration storage, job scheduling, transfer accounting, and native Rclone remote drivers.