- 🔐 Secure: Uses SSH authentication with GitHub
- 🚀 Fast: Written in Rust for maximum performance
- 🤖 Automated: Zero Git knowledge required
- 🔄 Real-time: Instant sync with smart batching
- 🌐 Cross-platform: Works on Linux, macOS, and Windows
- 🎯 Simple: Just one command to start syncing
# Install using cargo
cargo install github-sync
# Or build from source
git clone https://github.com/yourusername/github-sync
cd github-sync
cargo install --path .
# Install systemd service (Linux only)
sudo ./install/install.sh
# Set up GitHub authentication
ghs auth <your-github-token>
🔑 Get your token from GitHub Settings with 'repo' scope
# Start syncing a new folder
ghs start -n my-folder
# Your files will be in:
~/.github-sync/my-folder
Command | Description |
---|---|
ghs auth <token> |
Set up GitHub authentication |
ghs start -n <name> |
Create and sync a new folder |
ghs stop |
Stop the sync service |
ghs status |
Show sync status |
ghs config |
Configure sync settings |
graph TD
A[File System Events] -->|Notify| B[File Watcher]
B -->|Smart Batching| C[Git Operations]
C -->|SSH| D[GitHub]
E[Config] -->|Settings| B
E -->|Auth| C
- 🔍 File Watcher: Monitors file changes with smart batching
- 🔄 Git Operations: Handles all Git interactions seamlessly
- 🔐 Auth Manager: Secure GitHub token management
- ⚙️ Config: User settings and sync preferences
const BATCH_WINDOW: Duration = Duration::from_secs(2);
const MIN_SYNC_INTERVAL: Duration = Duration::from_secs(5);
- Changes are batched for 2 seconds
- Minimum 5-second interval between syncs
- Automatic conflict resolution with backup branches
~/.github-sync/ # Main Git Repository
├── project1/ # Your first folder
├── project2/ # Your second folder
└── .git/ # Single Git repository
- Runs as a user service with
[email protected]
- Starts automatically on system boot
- Manages process lifecycle and restarts on failures
- Install:
sudo ./install/install.sh
- Uninstall:
sudo ./install/uninstall.sh
- Runs as a Windows Service
- Starts automatically on system boot
- Manages process lifecycle and restarts on failures
- Install: Run
install\windows\install.ps1
as Administrator - Uninstall: Run
install\windows\uninstall.ps1
as Administrator
We love contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Omkar Bhor