[1] https://github.com/advancedtelematic/meta-updater
(Full disclosure: I work for Advanced Telematic, the creators and maintainers of the meta-updater Yocto layer.)
I think OSTree is great — but for embedded devices that are installed in the wild, humm, uh, I don't think so? I am pretty sure there are better options than that.
We had looked into OSTree before but given the use case of embedded devices in the wild, we concluded it was too risky as OSTree relies on the filesystem to protect from power failures. And rollback was not built-in and is quite challenging to implement reliably.
By the way, both buzhash and SHA-256 are kinda poor choices for a new system, especially one that targets servers.
Maybe it wasn't geared for CDN delivery during restores but otherwise I've been impressed by borg so far (haven't deployed it in production, only played with it locally though).
https://github.com/borgbackup/borg
This is a description of the internal design:
Why?
As far as I can tell, the advantages compared to Borgbackup seem to be:
* casync offers control over which FS metadata is included
* casync, the server, exposes chunks over HTTP
* casync, the library, is written in C so is more easily used by systems software.
I'm betting we'll see machinectl integration. Excellent!
casync does not act as a server. Its on-disk representation and client behaviour is designed in such a way that the server need only serve static files. This makes deployment easy.
systemd-nspawn integration is what I was thinking about too, so yeah! Nice work.
casync also has fs composition, a multitude of recorded file attributes, automatic reflinking/hardlinking, uid/gid shifting, and so much more.
tl;dr: rclone is for files, casync is for entire filesystems/deployments.