Hello Guilers! I'm pleased to announce Guile-SSH 0.16.0: https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.0 As usual, this release tag is signed with my GPG key[1]. This release contains a new SFTP directory traversal API and some small bugfixes. See the full list of user visible changes below. Guile-SSH 0.16.0 API should be backward-compatible with Guile-SSH 0.15.1, but not vice-versa. Also now you can read the Guile-SSH documentation online here: Or here (through the Yggdrasil[2] network): Please note that: 1. The Yggdrasil access is experimental and there's no guarantees; the actual Yggdrasil IPv6 address can be found on the main page of the site: 2. The site itself is self-hosted so sometimes it is a bit flacky. * What is Guile-SSH? Guile-SSH is a library that provides access to the SSH protocol[3] for programs written in GNU Guile interpreter. It is built upon the libssh[4] library. Currently Guile-SSH provides the following features: - The API that is sufficient for building of standalone SSH clients and servers, or for embedding client/server functionality in your lispy Scheme applications. - Several authentication methods are supported, including password authentication, public key and SSH agent authentication methods. - Key management procedures: you can make key pairs, read keys from files, get key hashes, get public keys from private keys etc. DSS, RSA, RSA1 and ECDSA (by means of OpenSSL) are supported. - Port forwarding procedures and high-level API for creating of SSH tunnels. - Distributed forms ('dist-map', 'distribute', ...) that allow to spread the evaluation of Scheme code between remote hosts. Or you can just connect to a remote REPL from Scheme using 'with-ssh' procedure and evaluate some expressions. No special server needed on the remote side, just an SSH daemon and GNU Guile installed! - SFTP client API allows you to read and write remote files, or do directory traversal over the SSH protocol right from the Scheme code. - Remote popen API that allows you to make either input, output or bidirectional pipes to remote processes. - Detailed documentation in Texinfo format with examples included, even more examples in 'examples' directory. - Procedures for interaction with SSH agents. * The list of user-visible changes Here's the list of user-visible changes (an excerpt from NEWS file): --8<---------------cut here---------------start------------->8--- * Changes in version 0.16.0 (2022-09-13) ** Fix Guile snarfer environment Fix a bug introduced in Guile-SSH 0.15.0 that breaks the cross-compilation. Reported by Ludovic Courtes here: ** New API: SFTP Directory Guile-SSH now allows directory traversal by means of the new procedures in the (ssh sftp) module. ** Update the documentation. --8<---------------cut here---------------end--------------->8--- Many thanks to all the people who helped me with bug reports, pull requests and other hints. I added all contributors to "AUTHORS" and "THANKS" files -- please let me know if I forgot to thank someone or if there any typos. - Artyom References: 1. https://pgp.mit.edu/pks/lookup?search=0x0898A02F&op=index 2. https://yggdrasil-network.github.io/ 3. https://en.wikipedia.org/wiki/Secure_Shell 4. https://www.libssh.org/ -- Artyom "avp" Poptsov Home page: https://memory-heap.org/~avp/ CADR Hackerspace co-founder: https://cadrspace.ru/ GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F