123
Synchi - Two-way file sync (jakobkreft.github.io)
submitted 1 day ago by jak0b@lemmy.ml to c/linux@lemmy.ml

cross-posted from: https://lemmy.ml/post/44815211

Two-way file sync, no remote agent needed

Today Synchi is finally public! It's designed for syncing files between two locations (local or over SSH). It detects conflicts, and lets you decide what to do.

Why not rsync/Unison/Syncthing?

  • rsync has no memory between runs and is one-way
  • Unison needs to be installed on both sides
  • Syncthing requires always-on daemons

Synchi runs on demand, works over SSH, and only transfers what actually changed.

I use it daily for syncing a shared folder between my machines and an android phone. Works great in combination with Tailscale/WireGuard so that you can sync files remotely.

you are viewing a single comment's thread
view the rest of the comments
[-] Cyber@feddit.uk 4 points 1 day ago* (last edited 1 day ago)

Genuine question: How's this different to rsync?

I have rsync installed locally, but not remotely and I'm able to sync changes, so how does this differ?

Edit: ok, I read the article a bit further and found the rsync comparison

[-] jak0b@lemmy.ml 7 points 1 day ago

Great question! Let me sum it up here for others:

rsync is one-way only and has no memory between runs, every execution starts from scratch. Synchi is two-way, stateful (knows what changed since last sync), and content-aware (uses hashes, so no false positives from timestamp changes). It also handles conflicts explicitly instead of silently overwriting.

That said, rsync is still the better tool for backups and one-way mirroring. Synchi is for when you need true bidirectional sync.

Here is also a comparison with unison and syncthing: https://jakobkreft.github.io/synchi/why.html

[-] BB_C@programming.dev 1 points 15 hours ago

Maybe I missed it, but you don't seem to mention anywhere sub-file sync (binary diffing) support (or presumably the lack of it), which is very important for fast syncing when files actually change!

[-] jak0b@lemmy.ml 2 points 15 hours ago

You are correct! no sub-file sync / binary diffing at the moment. It was my deliberate choice to keep complexity down. In practice, text files where diffing helps are tiny and transfer instantly anyway, and large files like images and videos almost never change partially. The main case where it would matter is something like large database files or VM images. That said, it's not off the table for the future!

this post was submitted on 22 Mar 2026
123 points (100.0% liked)

Linux

64001 readers
632 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS