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.

  • grapemix@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    1 day ago

    Speed conpared to rsync? Hash speed and cpu load compared? Need shell access for ssh? What about two devices across firewalls and internet which you can’t control? I think one of the usecase is only sync when you have WiFi. Still want android apk for my lazy ass. Good project

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      Thanks! If you just need backup, with Synchi you set the ‘force=root_a’ in config, otherwise its bidirectional sync. If you need pure backups, rsync or similar might still be the better fit as they have some backup specific features.

  • GlenRambo@jlai.lu
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    “Synchi does not try to be real-time, automatic, or invisible.”

    What would be the down side if I tried to automate the sync. Say every 5min on Linux to android.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      Nothing wrong with that at all! You can set up a cron job to run Synchi every 5 minutes and it would work just fine. The only minor downside is some wasted compute since it rescans and hashes everything each run, even if nothing changed. For most files like text it’s negligible though.

      In the future I might look into a lightweight daemon that uses Linux filesystem notifications (inotify) to trigger a sync when something changes.

  • ray@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    I love the concept for this. Syncthing is pretty good but it is annoying to have it running all the time on Android.

    I’d love to use something like this to sync my Obsidian md files between computer and phone just when needed. I suspect this could be baked into to an Obsidian plugin to make it pretty seemless for folks.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      This is exactly how I use Synchi! Same idea but I use Logseq instead of Obsidian (very similar open-source alternative, worth checking out). Works great for syncing markdown notes between computers and my phone on demand. Of course I need to remember to sync before switching devices, but I prefer this then constant running in the background.

      Haven’t thought about an Obsidian/Logseq plugin but honestly that sounds like a great idea… For now it’s CLI only, but I can definitely see the value.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      8
      ·
      2 days ago

      I used Syncthing for years, it’s great (if you use it and you are happy, then you dont need to switch), but they are quite different. Syncthing requires daemons on all devices and can’t sync two local folders on the same machine. Synchi is on-demand, runs only on one side, and doesn’t care where the two root folders are.

      I wrote a more detailed comparison here: https://jakobkreft.github.io/synchi/why.html

  • Eggyhead@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    This might be good on Steam Deck for multiple games that have carry-over data. Just mirror the save data folder of one proton directory into that of the follow-up game’s directory. I assume you can go back to the first game to unlock more stuff to carry over, and not have to manually copy-paste the save folder each time. Just run a sync.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      2 days ago

      I’m not too familiar with Steam Deck, but that sounds like it would work! As long as you can point Synchi at both save directories, it would keep them in sync and save you the manual copy-paste.