Librarian (streaming ssh client library)

Just wanted to inform everyone that I have a ssh client that I’m pretty happy about - it’s called librarian, and it improves on sshex in a few ways

1 - the functions are fairly well-typed
2 - it provides fetch/3 and send/4 which are implementations of the SCP protocol.
3 - uses elixir streams and collectible under the hood so it’s composable
4 - it provides ability to defer configuration settings to ~/.ssh/config
5 - there’s an identity: connect option which lets you use a pem file.

https://hexdocs.pm/librarian/SSH.html

It’s still early so there are probably some bugs that need to be worked out, and since I’m working on a linux box, not having a mac or windows to test on is tough, so as usual extra eyes and suggestions are greatly welcome

7 Likes

version 0.1.5 Update:

Lets you use tty: true (it’s pretty fun to log into an iex> shell and do SSH.run(conn, "cmatrix", tty: true)

tentative environment variable support (but unfortunately erlang’s SSH client library is broken!)
https://bugs.erlang.org/browse/ERL-1107/

1 Like