upvote
I remember back in the day Kermit was pretty heavyweight. We used sz/rz for file transfer [z-modem: good to see the man pages are still up! https://linux.die.net/man/1/sz]. Is there a reason to prefer Kermit?
reply
Kermit as a file transfer protocol, in the more modern implementations at least, supports 4K and 9K blocks, streaming mode (no need for ACKs), sliding windows, etc. As a protocol, it also has an OS-agnostic way to do file management; you can send commands like delete, rename, copy, etc. and the remote end does it in a general way. It's like SFTP, only a few decades earlier.

In modern times, I use it as a powerful ssh wrapper and BBS client. Its character-set translation is ideal for CP437 to UTF8. See https://www.openkermit.org/ckermit/ssh/ and https://www.openkermit.org/ckermit/bbs/

reply
Kermit initially competed with xmodem which was very primitive (but a lot smaller/simpler).

By the time zmodem became popular, the biggest remaining selling point of Kermit was the built-in scripting. Not much use for one-off BBS-style transfers, but very handy for keeping a directory in sync etc.

reply
Can you elaborate more on how you use it or do you recommend any codebase to learn more?

I remember evaluating Kermit and ymodem for my embedded work too, but didn't end up using them. Maybe I didn't understand Kermit fully. I wanted something to connect over serial (usb cdc and ble) via the browser and manage files and the state of the device.

I always end up writing something worse and half-baked in the end..

reply
I used Telix under IBM PC-DOS for scripting. The SLT scripts were as versatile as Expect or Tcl in that day.

I used MS-Kermit as a terminal emulator on the same system. I was accessing academic Unix systems and probably also remote access at my first job. MS-Kermit had a keycode translation capability that I used extensively.

My 2400/MNP5 modem sometimes only had a 7-bit connection. Without being 8-bit clean, I couldn’t directly use the Meta key with GNU Emacs. But sometimes I did achieve an 8-N-1 clean connection in the same modem pool!

So I wrote up two large tables for MS-Kermit: one for the 7-bit connection that would send ESC to simulate Meta for Emacs. And one for 8-bit-clean operation that used ALT as Meta and sent the ASCII code >=128.

I eventually submitted them to the GNU Emacs project and one was distributed with Emacs 18. Eventually, they were forced to remove it during a copyright/license cleanup audit. But it was my claim to 15 minutes of fame.

reply