sinkd

A deployable cloud file synchronization solution that keeps your data in sync across the digital seas.

inotify Rust MQTT rsync

Why Not To Use sinkd

sinkd isn't for everyone. You might want to look elsewhere if:

  1. You are comfortable with your files on some other computer you do not have physical access to that you are paying for.
  2. You already have Nextcloud, Dropbox, Azure, Google Drive, iCloud, etc., and find them sufficient.
  3. You prefer graphical user interfaces over command-line tools.
  4. 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:

  1. Written in Go, which relies on garbage collection - affecting performance in certain scenarios.
  2. Doesn't work locally, only from device to device - lacking local sync capabilities.
  3. Doesn't leverage the well-established rsync protocol for efficient transfers.
  4. GUI-driven approach that may not appeal to command-line enthusiasts.

Then Why sinkd?

  1. Privacy by default - your data stays yours.
  2. Your files, your data, your computer - complete ownership.
  3. Free and open source - inspect the code, modify it, contribute back.
  4. Uses rsync as its engine - battle-tested, efficient delta transfers.
  5. Set-it-and-forget-it philosophy - minimal maintenance required.
  6. Aimed at power users with low configuration needs.
  7. Written in Rust for memory safety and performance.
  8. No cloud dependency - works entirely on your infrastructure.
  9. 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)