Skip to content

A comprehensive backup and sync solution for multiple platforms.

Notifications You must be signed in to change notification settings

DaLaw2/MirrorSphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MirrorSphere

A powerful, cross-platform backup and file synchronization tool built with Rust, featuring both manual execution and automated scheduling capabilities.

Features

Core Functionality

  • Multiple Backup Types: Full backup and incremental backup support
  • File Comparison Modes: Standard (size + modification time), Advanced (+ attributes), Thorough (+ hash verification)
  • Mirror Mode: Maintains exact replica by removing extra files in destination
  • Symlink Handling: Choose to follow symlinks or copy them as-is
  • Permission Backup: Preserve file permissions and attributes
  • Source File Locking: Prevent modifications during backup process

Scheduling System

  • Flexible Intervals: Once, Daily, Weekly, Monthly scheduling
  • Schedule Management: Create, modify, pause, resume, and disable schedules
  • Automatic Execution: Background scheduler with configurable timing
  • Persistent Storage: SQLite database for schedule persistence

User Interface

  • Modern GUI: Built with egui for cross-platform compatibility
  • Real-time Progress: Live updates on backup progress and current operations
  • Error Tracking: Comprehensive error logging and display
  • Task Management: Start, pause, resume, and monitor backup executions

Technical Features

  • Multi-threading: Configurable concurrency for optimal performance
  • Progress Recovery: Resume interrupted backups from last checkpoint
  • Hash Algorithms: MD5, SHA256, SHA3, BLAKE2B, BLAKE2S, BLAKE3 support
  • Cross-platform: Windows and Linux support with platform-specific optimizations

Installation

Prerequisites

  • Rust 1.85+ (2024 edition)

Building from Source

# Clone the repository
git clone https://github.com/DaLaw2/MirrorSphere
cd MirrorSphere

# Build the project
cargo build --release

# Run the application
cargo run --release

Configuration

Config File (config.toml)

[Config]
internal_timestamp = 100     # Internal timing in milliseconds
ui_refresh_time = 2          # UI refresh interval in seconds
default_wakeup_time = 30     # Default scheduler wake-up time in seconds
max_concurrency = 4          # Maximum concurrent backup workers
max_file_operations = 100    # Maximum concurrent file operations

Screenshots

Main Interface

Main Interface Main Interface Main Interface Main Interface

The main execution management interface showing backup tasks, progress tracking, and control options.

Usage

GUI Interface

  1. Executions Tab: Manage manual backup tasks

    • Create new backup executions
    • Monitor progress in real-time
    • Start, pause, resume, or cancel operations
    • View detailed error logs
  2. Schedules Tab: Manage automated backups

    • Create scheduled backup tasks
    • Set intervals (Once, Daily, Weekly, Monthly)
    • Enable, pause, or disable schedules
    • View execution history and next run times

Backup Options

  • Mirror Mode: Remove files from destination that don't exist in source
  • Lock Source: Lock source files during backup to prevent modifications
  • Backup Permissions: Preserve file permissions and attributes
  • Follow Symlinks: Follow symbolic links instead of copying them

Comparison Modes

  1. Standard: Compare file size and modification time
  2. Advanced: Standard comparison + file attributes
  3. Thorough: Advanced comparison + cryptographic hash verification

Platform Support

Windows

  • UAC elevation for administrator privileges
  • Windows-specific file attributes and permissions
  • NTFS symlink support
  • Windows API integration for file operations

Linux

  • Root privilege handling
  • POSIX file permissions and attributes
  • Unix-style symlink support
  • Extended attribute support

Future Features

The following features are planned for future development as time and interest permits:

Cloud Storage Integration

  • Multiple Cloud Providers: Amazon S3, Google Cloud Storage, Azure Blob Storage
  • Cloud Synchronization: Direct backup to cloud storage with incremental sync

Advanced File System Features

  • NTFS USN Journal Support: Real-time change detection on Windows for efficient incremental backups
  • High-Performance I/O: IOCP (Windows) and io_uring (Linux) support for better async performance
  • File System Monitoring: Real-time file change notifications to trigger automatic backups

Platform Expansion

  • macOS Support: Complete cross-platform coverage with Apple File System (APFS) optimizations
  • Mobile Companion Apps: iOS/Android apps for monitoring and basic management

System Integration

  • Operating System Services: Register as Windows Service, Linux systemd daemon, or macOS Launch Daemon
  • Background Operation: Run silently in the background without user interaction
  • System Startup: Automatic startup with the operating system

Additional Ideas

  • Enhanced security with encryption and authentication

Note: This is a wish list of potential features, not a committed roadmap. Development priorities may change based on personal interest and available time.

Support

For issues, questions, or contributions, please use the GitHub issue tracker.

About

A comprehensive backup and sync solution for multiple platforms.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages