No you didn't miss. I mixed the concept, UDP broadcast similar to mDNS, yes part of net library. actual mDNS like visible in Finder and actual RFC implementation not part of standard library. What I was trying to say was easy to make "mdns-ish" with just standard lib, rush typed it and ended up like that.
hah, I feel you for 3. I was constantly hitting the loopback network interface and I was like, why no discovery. in hindisght bad idea to always get the first entry in an array, now go through a list of network interfaces that i spam.
for 1. i send a mutlicast of max 512 bytes on 224.0.0.167:26999 every 3 seconds
2. not really caching, just have a map of people that get discovered.
and god bless, I just rolled with this. if people will use the tool and they will complain about it, then it will be a problem for later. for me between my home devices did not notice inconveniences.
Very interesting. With the "virtual folders" feature, doesn't this also compete with Syncthing kind of? I have actually been looking for a solution like Syncthing, where I can write and cache files offline without actually having all the files in the full synced folder on every device (just my NAS). Kind of a hybrid between a remote filesystem mount and full-on folder sync.
I will add this on the roadmap. At the moment I am trying to add persistent identity, as by default it is ephemeral.
But I warn you, there are still some kinks. Only 75% pjdfstest (filesystem test suite) passes in terms of POSIX compliance. I do not support hardlinks/symlinks by design.
I was trying last to use postgresql on the virtual filesystem, then once the server is stoped, to remove the lock file, and open it on the peer. and some files got corrupted while running this test.
Yes-ish, adjacent. Syncthing usually you use it to sync to your server.
Here I skipped the server part. I just connect two devices.
If they both use the virtual mountpoint
MountAlice and MountBob
They get an underlying SaveAlice and SaveBob on disk.
so what gets dropped in MountAlice gets saved to SaveAlice, and appears in MountBob.
Once bob accesses it in MountBob it gets cached to SaveBob (like saved persistently to disk). But while the transfer happens a mmap is saved to disk to keep track of the segments that were transmited.
If changes happen on Alice for the file, GetAttr metadata is synced when the filehandler on Alice is released. and Bob knows to request the parts of the file that changed.
It did not go for the full-on folder sync. I went for a synced filesystem while the peers are connected.
And because ios and android do not have FUSE, i also added the option to add a file/ pull a file, that does the same thing.
So now, you can add folders/ files on android/ ios. and mount them as a filesystem on your desktop and do magic with them, and if they get changed you can export them back from the phone to the gallery or w/e files
I tried to explain here the differences, and where it fits in the gap of file transfer tools, also on the blog got some benchmarks and how they where setup.
Pretty cool! I see on enterprise edition you also support a virtual mount, is it FUSE based? I got a similar tool but went the other way around, I wanted to browse files synchronously (and bidirectional sync of edits) between two devices via FUSE mounts, and ended up tunneling TCP for this in the end.
Thanks! The file sharing is part of the base, FOSS Tela. It uses WebDAV rather than FUSE. The tela client runs a local WebDAV server that proxies file operations through the WireGuard tunnel to the agent on the remote machine. You can mount it as a network drive (Windows maps it as a drive letter, Linux/macOS mount it as a directory) or access it via TelaVisor or the tela CLI. It can be configured as read-only or read-write. Certain file extensions can be banned from upload or rename.
I went with WebDAV because it works on all three platforms without a kernel module or extra driver. For my use case (browsing files, grabbing configs, etc.) it works well enough.
Bi-directional sync is an interesting idea. Right now the sharing is one-directional (the agent exposes a directory, the client mounts it), but I could see adding something like that as a layer on top.
Both peers mount a virtual FUSE folder. Files shared by one side appear in the other's folder in real time. You can open, copy, and browse your peer's files as if they were local. Files go directly between devices over encrypted gRPC.
(by default it tries over LAN, then direct IPV6, then uses a data relay).
The hardest part has been making git repos work through the FUSE mount between peers.
(Been developing the tool for 12 months now, very close to a full release)
Personally, I use them as frameworks to justify management processes.
A) I tie the cybersecurity activities to business revenue enabling outcomes (unblocked contracts), and second to reduced risk (as people react less to this when spending the buck).
B) with the political capital from point A) I actually operate a cybersecurity program, justify DevSecOps artefacts, threat modeling, incident response exercises, etc.
What this SOC2 reports, ISO27k certificates are, more like a standardization for communicating the activities of the org to outside people, and getting an external person to vet that the org doesn't bulls*t too much. but at the end of the day, the organization is responsible for keeping their house in order.
A million factions all trying to take their angst out on some other neighboring faction, with geography that also puts everyone in the crossroads of every conquering group.
KeibiDrop: A peer to peer synchronous IPV6 file sync tool.
I always struggle to share files between my devices, or to navigate them. Why do I need servers, or dropbox or wetransfer?
Inspired by croc, rclone, syncthing and magic wormhole, I'm close to releasing KeibiDrop as MPL2.0.
It has a nice slint.dev GUI, works cross platform on mobile, + desktop (via FUSE or no-FUSE), and has post quantum encryption at transport level.
No clear monetization path, but I also tinker with unikraft in order to host a relay server (for key negotiation, or other things) as a unikernel cloud function.
reply