cdc-file-transfer
cdc-file-transfer copied to clipboard
QUESTION - LINUX ONLY
Is it possible to use CDC FT for Linux 2 Linux transfers to speed things up?
It seems like it just uses the SSH protocol, so it should work fine?
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/).
Do you have any sense of how hard it would be to integrate CDC into rsync itself?
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.
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?
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: @.***>
Linux support would be lovely, specially for the cdc_rsync as a faster alternative to traditional rsync...