Skip to content

Repository files navigation

ShareDrive for macOS

A modern, high-performance native macOS desktop application and menu bar agent for managing remote cloud/network storages, mounting SMB/NFS/FUSE shares, and orchestrating synchronization pipelines using rclone.

Built with pure native Swift, SwiftUI, and AppKit with zero third-party framework dependencies.

macOS 12.0+ Swift Native Zero Dependencies Rclone Compatible


Key Features

1. Native macOS Menu Bar Agent & Desktop Window

  • Always-accessible Menu Bar Agent: Runs unobtrusively in the macOS top status bar with a minimal HDD icon.
  • Background Persistence: Closing the desktop window keeps mounts active and transfers running in the background.
  • Safe Lifecycle Management: Clean 1-click shutdown (Quit & Unmount All) guarantees all mounted virtual file systems are unmounted cleanly.

2. Network Remotes & Storage Quotas

  • Protocol Support: Configure SMB, WebDAV, SFTP, Google Drive, OneDrive, Amazon S3, Nextcloud, and more via rclone.
  • Live Storage Quota Tracking: Real-time visual capacity meters (Used / Free / Total) powered by rclone about.
  • Encryption & Obscurity: Passwords and connection secrets are automatically encrypted via native obscure routines.

3. High-Performance Share Mounting

  • NFS Loopback Mode (rclone nfsmount): Mount network shares using macOS's built-in NFS client—zero third-party kernel extensions or MacFUSE required.
  • FUSE Mode (rclone mount): Full VFS caching (--vfs-cache-mode full) for complete application compatibility.
  • Native Finder Integration: 1-click Open in Finder, reveal mountpoints, and unmount.

4. Symmetrical Sync & Copy Workstation

  • Dual-Card Route Pipeline: Balanced Source and Destination cards with directory pickers, path autocompletion, and a central route swap button.
  • Quick-Pick Locations: 1-click shortcuts for Apple Cloud Docs, configured network remotes, Desktop, Documents, and Downloads.
  • Transfer Modes:
    • Sync (Mirror): Keeps destination identical to source (pruning obsolete files).
    • Copy: Copies new and modified files safely without deleting existing target data.
    • Move: Verifies transfer before safely removing source files.
    • Check: Performs cryptographic comparison without modifying files.
  • Adaptive Telemetry: Clean idle workstation hub (recent transfer summary, preset shortcuts, operation guide); expands into live metrics (KPI cards, real-time speed chart, per-file transfer progress, and console logs) during active runs.
  • Safety: Dry-run simulation mode (--dry-run) with detailed file diff inspection before executing.

5. Apple Cloud (iCloud) Integration

  • Context-aware iCloud banner appears automatically whenever iCloud documents (com~apple~CloudDocs) are selected.
  • Inspects local cache footprint vs. total cloud storage.
  • Optional post-transfer local cache eviction (brctl evict) to free local Mac disk space while keeping files safe in the cloud.

6. In-Flight File Encryption / Decryption

  • Modal interface to encrypt and decrypt individual files or entire folders with AES-256 via rclone crypt.
  • Zero-knowledge security: Passwords are never saved to disk or stored in memory after execution.

Getting Started

Prerequisites

  • macOS 12.0 or later (fully tested on macOS 15 Sequoia and Apple Silicon M1/M2/M3/M4).
  • Xcode Command Line Tools:
    xcode-select --install
  • rclone (installed via Homebrew or official package):
    brew install rclone

Quick Start

  1. Clone the repository:

    git clone https://github.com/<your-username>/sharedrive-macos.git
    cd sharedrive-macos
  2. Build and launch:

    ./start.sh

    The launcher script will automatically compile the native Swift application on the first run and open the desktop window.

  3. Stop the application:

    ./stop.sh

Building from Source

To compile the native application manually using swiftc:

./build_native.sh

This compiles all SwiftUI views, AppKit controllers, and services into a standalone macOS bundle at ShareDrive.app.


Project Structure

├── build_native.sh          # Native Swift compiler script
├── start.sh                 # Background launcher and process monitor
├── stop.sh                  # Graceful shutdown and unmount script
├── data/                    # App assets, icons, and menu bar images
│   ├── AppIcon.icns
│   ├── AppIcon.png
│   ├── menubar_icon.png
│   └── notification_icon.png
└── src/                     # Pure native Swift source code
    ├── App/
    │   ├── AppDelegate.swift    # App lifecycle, NSMenu bar, and window delegate
    │   └── main.swift           # Application entry point
    ├── Models/
    │   └── Models.swift         # Data structures (Remotes, Mounts, Quotas, History)
    ├── Services/
    │   ├── AppState.swift           # Centralized reactive state store
    │   ├── MountService.swift       # NFS & FUSE mount process supervisor
    │   ├── NotificationService.swift# Native macOS UserNotifications delivery
    │   ├── RcloneService.swift      # CLI wrapper, quota inspector, crypto runner
    │   ├── ScheduleService.swift    # Background timer & periodic health monitor
    │   └── SyncHistoryService.swift # Persistent transfer history
    └── Views/
        ├── AppTabBarView.swift      # Segmented top navigation bar with status pills
        ├── CryptoModalView.swift    # Secure password encryption/decryption sheet
        ├── ExplorerView.swift       # Remote & local file browser
        ├── iCloudManagerView.swift  # Apple Cloud cache & eviction manager
        ├── JobsView.swift           # Saved presets and automated schedules
        ├── MainView.swift           # Root view container
        ├── MountsView.swift         # Active mounts list & mount dialog
        ├── RemotesView.swift        # Configured remotes & quota cards
        ├── SidebarView.swift        # Auxiliary navigation controls
        ├── SyncHistoryView.swift    # Transfer history logs & filtering
        └── SyncView.swift           # Symmetrical Sync & Copy workstation

License

MIT License. See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages