You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Lyor Goldstein <lg...@apache.org> on 2018/08/30 17:46:50 UTC

Q: Break down sshd-core into sshd-utils + sshd-core ?

As part of an ongoing agenda to make SSHD less "monolithic" we have
re-factored the code and extracted MINA, Netty, SCP, SFTP and CLI to their
own modules. As part of this agenda I have been considering splitting the
*sshd-core* further into *sshd-utils* that will contain common support code
- e.g.

- Key utilities - including parsing key files
- Security utilities - the builtin ciphers, MAC(s), etc.
- Generic utilities - validation, buffer handling, thread pools, etc.


Besides better separation of concerns (and slightly faster build),the idea
is that some of these utilities are useful enough on their own - e.g., key
files parsing code that can be used by other projects that don't require
full-blown client/server.

Trying to anticipate some questions:

     - the moved classes will retain their original name and package - thus
facilitate smooth upgrade of future versions
    - I doubt this will make it into the next version (which I would like
to release in the very near future)
    - The dependency of *sshd-core* on *sshd-utils* will also pull this
dependency automatically in Maven when upgrading to the "split" version
    - Ideally, it would be great if we could further separate client from
server code, but initial (cursory) research shows this to be much more
complex than just splitting the utilities.
    - I have not started work on this and would also appreciate some
feedback on whether you think such an effort is worth the result

Thanks for your feedback,
Lyor G.