https://github.com/powerappsdarren/sync-app
https://github.com/powerappsdarren/sync-app
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/powerappsdarren/sync-app
- Owner: PowerAppsDarren
- License: other
- Created: 2025-06-28T11:34:18.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-06-28T12:01:34.000Z (12 months ago)
- Last Synced: 2025-08-15T02:54:50.249Z (10 months ago)
- Language: Rust
- Size: 30.2 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sync App
[](https://github.com/yourusername/sync-app/actions)
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://yourusername.github.io/sync-app/)
A comprehensive, high-performance file synchronization application built in Rust with PocketBase backend. Sync App provides real-time file synchronization, conflict resolution, and monitoring capabilities with both CLI and daemon interfaces.
## 🚀 Quick Start
### Local Development Setup
1. **Clone and Build**
```bash
git clone https://github.com/yourusername/sync-app.git
cd sync-app
cargo build --release
```
2. **Start PocketBase Backend**
```bash
# On Windows
.\pocketbase\setup.ps1
# On Linux/macOS
./pocketbase/setup.sh
```
3. **Run Your First Sync**
```bash
# Add a sync configuration
./target/release/sync add --name "documents" --source "./test-source" --dest "./test-backup"
# Run the sync
./target/release/sync run
```
4. **Start the Daemon (Optional)**
```bash
./target/release/daemon start --config ./daemon/examples/daemon-config.toml
```
5. **Launch Web UI (Optional)**
```bash
./target/release/ui
# Open http://localhost:3000
```
## 📁 Project Structure
```
sync-app/
├── sync-core/ # Core synchronization engine
├── sync-cli/ # Command line interface
├── sync-server/ # Server component
├── sync/ # Sync library with conflict resolution
├── daemon/ # Background daemon service
├── ui/ # Web-based user interface
├── pocketbase/ # PocketBase backend setup
├── docs/ # Comprehensive documentation
├── packaging/ # Distribution packages
└── scripts/ # Build and release scripts
```
## ✨ Key Features
- **🔄 Real-time Synchronization**: Bidirectional sync with file watching
- **⚡ High Performance**: Optimized Rust implementation with async I/O
- **🛠️ Conflict Resolution**: Smart conflict detection and resolution strategies
- **📊 Monitoring & Telemetry**: Prometheus metrics and structured logging
- **🌐 Web Interface**: Modern React-based UI for management
- **🔧 Flexible Configuration**: TOML-based configuration with live reload
- **📦 Cross-platform**: Windows, Linux, and macOS support
- **🔒 Secure**: Built-in authentication and encrypted transfers
## 🎯 Use Cases
- **Development Teams**: Keep codebases synchronized across environments
- **Content Creators**: Sync media files between workstations
- **Remote Work**: Maintain consistent file structures across devices
- **Backup Solutions**: Automated incremental backups with versioning
- **CI/CD Pipelines**: Sync build artifacts and deployment files
## 🏗️ Architecture Overview
```mermaid
graph TB
A[CLI Interface] --> B[Sync Core]
C[Web UI] --> B
D[Daemon Service] --> B
B --> E[PocketBase Backend]
B --> F[File System]
G[File Watcher] --> D
H[Scheduler] --> D
I[Metrics Endpoint] --> D
```
## 📚 Documentation
- **[Quick Start Guide](docs/quick-start.md)** - Get up and running in minutes
- **[Production Deployment](docs/deployment.md)** - Production-ready setup guide
- **[Configuration Reference](docs/configuration.md)** - Complete configuration options
- **[CLI Usage](CLI_USAGE.md)** - Command-line interface documentation
- **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions
- **[Examples](docs/examples/)** - Real-world usage examples
## 🛠️ Development
### Prerequisites
- Rust 1.70+ (stable toolchain)
- Git
- Node.js 18+ (for UI development)
### Building
```bash
# Debug build
cargo build
# Release build
cargo build --release
# Build specific component
cargo build --bin sync-cli
```
### Testing
```bash
# Run all tests
cargo test --workspace
# Run integration tests
cargo test --test integration_tests
# Test with coverage
cargo tarpaulin --all-features --workspace
```
### Code Quality
```bash
# Format code
cargo fmt
# Lint code
cargo clippy -- -D warnings
# Security audit
cargo audit
```
## 📦 Installation
### Pre-built Binaries
Download from [GitHub Releases](https://github.com/yourusername/sync-app/releases)
### Package Managers
```bash
# Homebrew (macOS/Linux)
brew install sync-app
# Chocolatey (Windows)
choco install sync-app
# Cargo
cargo install sync-app
```
### Docker
```bash
# Run daemon in container
docker run -d --name sync-daemon \
-v /path/to/config:/config \
-v /path/to/data:/data \
sync-app:latest
```
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests and linting (`cargo test && cargo clippy`)
5. Commit your changes (`git commit -m 'Add amazing feature'`)
6. Push to the branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
## 📄 License
This project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- [PocketBase](https://pocketbase.io/) for the excellent backend framework
- [Tokio](https://tokio.rs/) for async runtime
- [Tauri](https://tauri.app/) for desktop application framework
- The Rust community for amazing crates and tools
## 📞 Support
- 📖 Documentation: [https://yourusername.github.io/sync-app/](https://yourusername.github.io/sync-app/)
- 🐛 Issues: [GitHub Issues](https://github.com/yourusername/sync-app/issues)
- 💬 Discussions: [GitHub Discussions](https://github.com/yourusername/sync-app/discussions)
- 📧 Email: support@example.com