Why Not To Use sinkd
sinkd isn't for everyone. You might want to look elsewhere if:
- You are comfortable with your files on some other computer you do not have physical access to that you are paying for.
- You already have Nextcloud, Dropbox, Azure, Google Drive, iCloud, etc., and find them sufficient.
- You prefer graphical user interfaces over command-line tools.
- Privacy concerns aren't at the top of your priority list.
What About Syncthing?
Syncthing is quite nice with its 69k stars on GitHub, but it has some limitations:
- Written in Go, which relies on garbage collection - affecting performance in certain scenarios.
- Doesn't work locally, only from device to device - lacking local sync capabilities.
- Doesn't leverage the well-established rsync protocol for efficient transfers.
- GUI-driven approach that may not appeal to command-line enthusiasts.
Then Why sinkd?
- Privacy by default - your data stays yours.
- Your files, your data, your computer - complete ownership.
- Free and open source - inspect the code, modify it, contribute back.
- Uses rsync as its engine - battle-tested, efficient delta transfers.
- Set-it-and-forget-it philosophy - minimal maintenance required.
- Aimed at power users with low configuration needs.
- Written in Rust for memory safety and performance.
- No cloud dependency - works entirely on your infrastructure.
- Command-line first - scriptable and automatable.
Features
⚡
Real-time Sync
Leverages inotify for instant file system event detection and immediate synchronization across your fleet.
🔒
Secure Transfer
End-to-end encryption ensures your data remains secure as it traverses the digital seas.
🚀
High Performance
Built with Rust for maximum performance and reliability, ensuring smooth sailing for your data.
🌐
Reliable Delivery
MQTT-based communication guarantees reliable message delivery across your distributed fleet.
Technical Details
Architecture
sinkd uses a modular architecture with four main components:
- File System Monitor (inotify)
- Message Broker (MQTT)
- rsync Engine
- Encryption Layer
Dependencies
- Rust 1.70+
- Linux (for inotify support)
- MQTT Broker
- rsync (optional, can use built-in implementation)