As Google hover over the nuke from orbit button on Stadia, they're at least releasing some of it as open source like CDC File Transfer.
Noted on their GitHub page, it's a way for syncing and streaming files from Windows to Linux. The question is: why another way to sync files? There's tons of ways that already exist. Well, they explained that too.
Developers could use scp, but they noted it was "impractical" especially with more people working from home as it "always copies full files". So they made cdc_rsync and cdc_stream to help developers who quickly iterate on games. Something that could potentially be useful for developers checking out stuff on Steam Deck too.
CDC RSync is designed for syncing files from Windows to Linux but optimized for existing files possibly being on the end machine. They go into detail on why and how it's different to rsync, including showing it performing better for this specific case because of how they split up files into chunks differently at variable sizes. While CDC Stream is for streaming files from Windows to Linux, they say it's "conceptually" similar to sshfs but "optimized for read speed".
For anyone interested in trying it out, they provide release builds for Ubuntu.
All in all this reminds me of https://xkcd.com/927/
I wonder if I'm the only one that reads CDC as centers for desease control. An unfortunate name.Nailed it, on both accounts! LOL!
All in all this reminds me of https://xkcd.com/927/
I thought of the same (both CDC and regarding yet another sync protocol)
There's also casync in that space: https://github.com/systemd/casync/ (the blog post is quite nice IIRC).
If it's similar but better than rsync, I feel like these improvements should be folded into rsync.
Last edited by MayeulC on 6 January 2023 at 9:28 pm UTC
I'm surprised, I thought rsync already used rolling hashes.If it's open source, perhaps they will be.
There's also casync in that space: https://github.com/systemd/casync/ (the blog post is quite nice IIRC).
If it's similar but better than rsync, I feel like these improvements shoukd be folded into rsync.
Did they have their own translation layer or api for windows under Linux games or were they just using custom DXVK?They clearly mentioned DXVK in their "how to write compatibility layer for Windows" keynote.
I'm surprised, I thought rsync already used rolling hashes.
There's also casync in that space: https://github.com/systemd/casync/ (the blog post is quite nice IIRC).
If it's similar but better than rsync, I feel like these improvements should be folded into rsync.
Perhaps semantics but rsync uses a rolling checksum (a variant of adler-32) combined with a strong hash. Casync looks really promising but unfortunately it needs a prepare stage that is probably why it so far haven't seen wide adoption and implementing that in rsync would require a total rewrite so that will probably never happen either (plus I don't think the rsync devs wants that need to prepare the files for transfer), the CDC improvements however should be a great contender for a new version of the rsync protocol/algorithm, just unfortunate that google decided to go NIH instead of proposing this change upstream to rsync.
Anyone interested should contact Wayne at [email protected]
See more from me