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

comparison to russh #3

Open
rukai opened this issue Jun 29, 2023 · 2 comments
Open

comparison to russh #3

rukai opened this issue Jun 29, 2023 · 2 comments
Assignees

Comments

@rukai
Copy link

rukai commented Jun 29, 2023

This library looks really nice and im trying to compare it against russh.
I would appreciate a section in the readme that explains what differentiates makiko from russh.

One difference I can see is that russh also supports writing ssh servers.
I'm hoping that makiko focusing on writing clients makes it better for that.

Thanks!

@honzasp
Copy link
Owner

honzasp commented Jun 29, 2023

Hi, this is a good point :) The main difference is in the API, Makiko is a bit lower-level, it never spawns tasks or connects to sockets, so it gives more control to the user. Also, with Makiko, asynchronous events (such as the server's public key or data on a channel) are consumed with a channel-like receiver interface (ClientReceiver, SessionReceiver, ...), but with Russh/Thrussh, you define callbacks with a trait object.

Thrussh also implemented very limited crypto (just a single key exchange algorithm, public key algorithm and cipher), but Russh added support for more, so it now supports almost everything that Makiko supports.

@honzasp honzasp self-assigned this Jun 29, 2023
@rukai
Copy link
Author

rukai commented Jun 29, 2023

I've been working with russh today and I think it's worth noting that the handler trait is optional. By default it uses channel receivers similar to makiko. if a method is defined on the handler trait then I believe the corresponding message type is no longer sent to the receiver.

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

2 participants