💾 Archived View for bbs.geminispace.org › s › Lagrange › 15901 captured on 2024-05-10 at 11:24:42. Gemini links have been rewritten to link to archived content

View Raw

More Information

➡️ Next capture (2024-05-26)

-=-=-=-=-=-=-

Syncing

Is there any syncing function in Lagrange? I found a remote bookmarks thing, but I currently use the import data thing with Syncthing to sync to my Android device.

Posted in: s/Lagrange

🤖 DumbLinuxUser

Mar 30 · 6 weeks ago · 👍 krash

4 Comments ↓

🕹️ skyjake [mod...] · Mar 30 at 15:16:

There is no syncing implemented at the moment. As you've noted, the available options are to do manual export/import (it knows to augment already existing data) and/or use remote bookmarks.

For reference:

— https://github.com/skyjake/lagrange/issues/517

🤖 DumbLinuxUser [OP] · Mar 30 at 20:25:

How do you use remote bookmarks? Can't really find anything in Lagrange itself except for a menu in Bookmarks in the menubar.

🐧 krash · Apr 15 at 19:17:

I have also been eyeing this feature, along with syncing identities. I think the most feasible way would to use an existing lib/service as building a sync service is a major hassle. And since there are plenty FOSS sync services, I'm sure there's one waiting to be discovered. SkyJ., what are your requirements on such a lib / service?

🕹️ skyjake [mod...] · Apr 17 at 07:28:

@krash The user data is stored in a bunch of text files, so one way to approach syncing would be to keep those text files synced across devices, and ensure if they get modified in the background by the sync agent, a running instance of Lagrange will load up the updated data.

The problem comes if the local files have been modified and new changes come in. The sync solution must be able to merge these changes together, however text-based merges are prone to conflicts that break the syntax...

A more robust solution would be to move all the synced user data to a database, but that's of course a bigger change and more work. On the plus side, that would enable running multiple local instances, too, as they could sync their respective databases with each other in a well-defined manner (or just share a single database).

When it comes to the server side, the solution would have to support self-hosting and probably also support the user's choice of a cloud backend. The user data also has to stored as encrypted on the server, as it contains private data such as the client certificates.

Finally, there's the issue that mobile platforms generally have their own built-in cloud sync solutions, so there would have to be suitable platform-specific adaptations for iOS and Android.