You can sign up to get a daily email of our articles, see the Mailing List page.
We do often include affiliate links to earn us some pennies. See more here.

Google open sourced CDC File Transfer from the ashes of Stadia

By - | Views: 46,132

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.

Article taken from GamingOnLinux.com.
20 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
10 comments

Hopefully they'll find time to open more stadia related resources *cough*the controller firmware*cough cough*
Klaas 6 Jan
I wonder if I'm the only one that reads CDC as centers for desease control. An unfortunate name.

All in all this reminds me of https://xkcd.com/927/
Thetargos 6 Jan
Quoting: KlaasI wonder if I'm the only one that reads CDC as centers for desease control. An unfortunate name.

All in all this reminds me of https://xkcd.com/927/
Nailed it, on both accounts! LOL!

I thought of the same (both CDC and regarding yet another sync protocol)
MayeulC 6 Jan
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.


Last edited by MayeulC on 6 January 2023 at 9:28 pm UTC
Quoting: MayeulCI'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 shoukd be folded into rsync.
If it's open source, perhaps they will be.
elmapul 6 Jan
that is cool and all, but i rather not see the exclusive games die (guilty i'm looking at you) than seeing anything being open source from this mess.
Did they have their own translation layer or api for windows under Linux games or were they just using custom DXVK?
Quoting: TheRiddickDid 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.
Orkultus 7 Jan
I just want them to patch the game pad, so we can use it as a bluetooth controller.
F.Ultra 8 Jan
View PC info
  • Supporter
Quoting: MayeulCI'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]
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone with no article paywalls. We also don't have tons of adverts, there's also no tracking and we respect your privacy. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.