cdc-file-transfer icon indicating copy to clipboard operation
cdc-file-transfer copied to clipboard

QUESTION - LINUX ONLY

Open mxdpeep opened this issue 2 years ago • 7 comments

Is it possible to use CDC FT for Linux 2 Linux transfers to speed things up?

mxdpeep avatar Jan 08 '23 14:01 mxdpeep

It seems like it just uses the SSH protocol, so it should work fine?

ghost avatar Jan 09 '23 06:01 ghost

Right now, it's not, but it wouldn't be hard to do, at least for cdc_rsync.

The code is largely cross-platform, except for a few things that are not:

  • The socket classes need to work around a few platform specific issues like WSAEADDRINUSE vs EADDRINUSE.
  • We're calling netstat, which has different flags for Windows and Linux.
  • The file systems and permissions are different.
  • We're calling binaries through ssh. On Windows, that runs in Powershell, on Linux it uses bash by default (at least on our systems). Escaping is also different.

Overall, it shouldn't be a lot of work. Note that rsync on Linux provides a large number of flags that cdc_rsync doesn't support (yet) to fine tune how things work. cdc_rsync is really geared towards the use case of deploying a game.

We're currently adding support for Windows to Windows cdc_rsync (including local syncs, i.e. not over network), see https://github.com/google/cdc-file-transfer/compare/main...sync_windows

For cdc_stream, it could be a bit more work to get the FUSE running on Windows. However, there are tools that provide a FUSE wrapper, like Dokan (https://dokan-dev.github.io/).

ljusten avatar Jan 09 '23 08:01 ljusten

Do you have any sense of how hard it would be to integrate CDC into rsync itself?

AndyA avatar Jan 09 '23 11:01 AndyA

I imagine it might not be very hard to do that in principle. We actually used librsync (https://github.com/librsync/librsync) in the first incarnation of this tool, and switched to CDC later. This switch only took a few days. That being said, rsync has a much longer history and more baggage to carry. Some flags might not make sense for CDC, some behavior might change, so I could imagine the main amount of work would go into making the transition smooth. Maybe ask this question again on the librsync repo.

ljusten avatar Jan 09 '23 12:01 ljusten

I'm trying to bulld linux version fo cdc_rsync; It chokes on file_watcher_win module... Anybody hav adaptation of this module to Linux?

Vadiml1024 avatar Feb 20 '23 12:02 Vadiml1024

cdc_rsync doesn't use the file watcher, that's used by cdc_stream only. If you build the //cdc_rsync target only, you shouldn't see this error.

However, it still won't build. The process class isn't supported on Linux. The Linux implementation would be significantly different and a bit of work, but on the bright side a process class is pretty standard.

Other than that, I don't think there are major obstacles. There is a minor one, the path::SearchFiles (iirc) method supports wildcards on Windows, but not on Linux. This could be fixed fairly easily by manually filtering using PathFilter.

Vadiml1024 @.***> schrieb am Mo., 20. Feb. 2023, 13:36:

I'm trying to bulld linux version fo cdc_rsync; It chokes on file_watcher_win module... Inybody hav adaptation of this module to Linux?

— Reply to this email directly, view it on GitHub https://github.com/google/cdc-file-transfer/issues/56#issuecomment-1436944422, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEBQFMEP2DOPOD4ABE7DP7TWYNQOHANCNFSM6AAAAAATUS4TL4 . You are receiving this because you commented.Message ID: @.***>

ljusten avatar Feb 20 '23 15:02 ljusten

Linux support would be lovely, specially for the cdc_rsync as a faster alternative to traditional rsync...

Mikesco3 avatar Oct 14 '23 05:10 Mikesco3