💾 Archived View for complete.org › syncthing captured on 2024-08-18 at 17:42:03. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Syncthing is a serverless, peer-to-peer file synchronization tool. It is often compared to Dropbox. However, unlike Dropbox, there is no central server with Syncthing; your devices talk directly to each other to sync data. Syncthing has various effective methods for firewall traversal, including public relays for the worst case. All Syncthing traffic is fully encrypted and authenticated.
Syncthing actually can operate fully asynchronously. For instance, if you have a house and a shed, with a Raspberry Pi at the shed that has no Internet access, you can still sync files between them. You can set up a phone to sync the directory with them both. When the phone is near either the house or the shed, it will sync data with whatever network it can join. When it travels to the other location, it will propagate the changes to it.
I wrote more about this use of Syncthing, and its use with NNCP[1], in my blog post A simple, delay-tolerant, offline-capable mesh network with Syncthing (+ optional NNCP)[2]. Yes, it is a form of a Mesh Network[3]!
Syncthing can also work as a transport for Filespooler[4] and can be ideal for things like Asynchronous Communication[5] Backups[6].
5: /asynchronous-communication/
Homepage: https://syncthing.net/
--------------------------------------------------------------------------------
7: /an-asynchronous-rsync-with-dar/
In my writing about dar[8], I recently made that point that dar is a filesystem differ and patcher.
9: /building-an-asynchronous-internet-optional-instant-messaging-system/
I loaded up this title with buzzwords. The basic idea is that IM systems shouldn't have to only use the Internet. Why not let them be carried across LoRa radios, USB sticks, local Wifi networks, and yes, the Internet? I'll first discuss how, and then why.
gitsync-nncp is a tool for using Asynchronous Communication[11] tools such as NNCP[12] or Filespooler[13], or even (with some more work) Syncthing[14] to synchronize git[15] repositories.
11: /asynchronous-communication/
16: /introduction-to-filespooler/
It seems that lately I've written several shell implementations of a simple queue that enforces ordered execution of jobs that may arrive out of order. After writing this for the nth time in bash, I decided it was time to do it properly. But first, a word on the *why* of it all.
17: /using-filespooler-over-syncthing/
Filespooler[18] is a way to execute commands in strict order on a remote machine, and its communication method is by files. This is a perfect mix for Syncthing[19] (and others, but this page is about Filespooler and Syncthing).
Filespooler lets you request the remote execution of programs, including stdin and environment. It can use tools such as S3, Dropbox, Syncthing[21], NNCP[22], ssh, UUCP[23], USB drives, CDs, etc. as transport; basically, a filesystem is the network for Filespooler.
Filespooler is particularly suited to distributed and Asynchronous Communication[24].
24: /asynchronous-communication/
This page describes some basic concepts of NNCP[26].
27: /tools-for-communicating-offline-and-in-difficult-circumstances/
When things are difficult -- maybe there's been a disaster, or an invasion (this page is being written in 2022 just after Russia invaded Ukraine), or maybe you're just backpacking off the grid -- there are tools that can help you keep in touch, or move your data around. This page aims to survey some of them, roughly in order from easiest to more complex.
Anything that uses encryption to keep content away from spying eyes.
A network in which the nodes typically discover each other and the routes between each other automatically.
30: /asynchronous-communication/
Asynchronous communication is communication between two endpoints that doesn't have to happen in real time or near-real-time.
31: /tunneling-nncp-over-other-transports/
NNCP[32] has built-in support for running over TCP, with nncp-daemon and nncp-call/caller. NNCP's own use cases[33] page talks about various use cases for NNCP. Some of them, such as the no link[34] page, cover use of nncp-xfer; others, such as the one-way broadcasting[35] page go over nncp-bundle.
33: https://nncp.mirrors.quux.org/Use-cases.html
34: https://nncp.mirrors.quux.org/UsecaseNoLink.html
35: https://nncp.mirrors.quux.org/UsecaseBroadcast.html
This page gives you references to software by John Goerzen[37].
38: /recovering-our-lost-free-will-online-tools-and-techniques-that-are-available-now/
*This started out at a post on my blog[39]. This edited version is intended to be kept more up-to-date.*
40: /the-pc-internet-revolution-in-rural-america/
Inspired by several others (such as Alex Schroeder's post[41] and Szczeżuja's prompt[42]), as well as a desire to get this down for my kids, I figure it's time to write a bit about living through the PC and Internet revolution where I did: outside a tiny town in rural Kansas. And, as I've been back in that same area for the past 15 years, I reflect some on the challenges that continue to play out.
41: https://alexschroeder.ch/wiki/2021-11-14_The_early_years_on_the_net
42: https://mastodon.online/@szczezuja/108902027541781265
NNCP lets you securely send files, or request remote execution, between systems. It uses asynchronous communication[44], so the source and destination need never be online simultaneously. NNCP can route requests via intermediate devices -- other NNCP nodes, USB sticks, tapes, radios, phones, cloud services, whatever -- leading to a network that is highly resilient and flexible. NNCP makes it much easier to communicate with devices that lack Internet connectivity, or have poor Internet.
44: /asynchronous-communication/
(c) 2022-2024 John Goerzen