ssh2-python icon indicating copy to clipboard operation
ssh2-python copied to clipboard

Feature request: enable compression flag

Open pletnes opened this issue 8 months ago • 3 comments

Hi!

Thanks for a performant and useful SFTP implementation. Beats the other libraries I've tried out there.

Feature request: I've tried to enable compression but can't seem to find how to do it in the documentation. Reading the cython and C source code did not help me either (not a C expert though). Is this possible to do now? Or could it be implemented, and how? The files I want to transfer compress well.

(Note that the Google groups forum does not seem to exist anymore.)

pletnes avatar Oct 30 '23 07:10 pletnes

You'd use LIBSSH2_FLAG_COMPRESS with libssh2_session_flag (not the greatest API for this in the world, as the protocol has flexible negotiation for this, instead of an zlib on-off switch - though to be fair, that's the only compression anyone ever implements) for this. This isn't a wrapped function in ssh2-python as far as I can tell.

This is usually not that interesting, because this is zlib, so quite slow and can be a CPU bottleneck even on modest connection speeds with the regular zlib (without QAT or zlib-ng).

enkore avatar Nov 10 '23 23:11 enkore

I'm currently in the "huge files which compress >50x on a beefy machine far away" corner so it's one of those cases where compression really is handy.

From what I can tell, in libssh2, this just a bitmask-style flag on the session. Any pointers to how I'd proceed on implementing this myself?

pletnes avatar Nov 15 '23 13:11 pletnes

I already have this feature in my own fork.

Red-M avatar Nov 15 '23 14:11 Red-M