Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New implementation for SSH, SCP and SFTP #55

Open
Arlodotexe opened this issue Jun 11, 2024 · 5 comments
Open

New implementation for SSH, SCP and SFTP #55

Arlodotexe opened this issue Jun 11, 2024 · 5 comments

Comments

@Arlodotexe
Copy link
Owner

Arlodotexe commented Jun 11, 2024

Originally posted by @itsWindows11 in #12 (comment)

FTP and SFTP should be completely different implementations, as SFTP isn't the same as FTPS.

SSH.NET is basically the only actively maintained free SFTP/SCP library that I could find. Problem is it has some methods that are sync only, and others that are async but use the old Begin/End pattern, or async with callbacks, and finally async using Task, and it doesn't support checking the creation date of a file.

Instead of potentially exhausting the threadpool for IO if one were to stress test the SFTP implementation using that library, we might need a fork that properly makes use of Task and async, and maybe contribute back to the original repo.

We might need to look into adding progress reporting too in the abstraction if it already isn't there, Files might need it.

@Arlodotexe
Copy link
Owner Author

Tracking progress reporting in #54

@Arlodotexe
Copy link
Owner Author

Linking sshnet/SSH.NET#1415

@snargledorf
Copy link

I've recently started adding async implementations for some of the SFTP functions in the SSH.NET library. Just wanted to mention since I didn't see anyone else working on this.

I'm using the issue @Arlodotexe linked for tracking my PR's.

@itsWindows11
Copy link
Contributor

@Arlodotexe

  • There's also Tmds.Ssh which we could use as a separate implementation.
  • Sounds like most of the concerns around SSH.NET async support are resolved if I'm not wrong. @snargledorf Are all I/O related methods migrated to async?

@snargledorf
Copy link

So far added:

There is also a PR being worked on to add official support for DownloadFileAsync, UploadFileAsync and SynchronizeDirectoriesAsync.

Not sure if anyone else is working on any other async support, but these cover most of the basics IMO.

Not sure when a build of the library will occur that will include these changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants