* [ANN] Guile-SSH 0.9.0 released
@ 2015-12-24 9:00 Artyom Poptsov
0 siblings, 0 replies; only message in thread
From: Artyom Poptsov @ 2015-12-24 9:00 UTC (permalink / raw)
To: Guile Users' Mailing List
[-- Attachment #1: Type: text/plain, Size: 6054 bytes --]
Hello Guilers,
I'm pleased to announce Guile-SSH 0.9.0:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.9.0
Please find the package signed with my GPG key[1] here:
- ftp://memory-heap.org/software/guile-ssh/guile-ssh-0.9.0.tar.gz
- ftp://memory-heap.org/software/guile-ssh/guile-ssh-0.9.0.tar.gz.sig
This release includes some bugfixes and two new modules: (ssh sftp) and
(ssh popen). Some parts of API were changed, so probably you'll need to
update your appilcations in order to use them with the new Guile-SSH
release.
See the full list of user-visible changes and Guile-SSH features below.
Also the project now has its own logo:
- https://github.com/artyom-poptsov/guile-ssh/blob/master/doc/logo.png
- https://github.com/artyom-poptsov/guile-ssh/blob/master/doc/logo-with-text.png
As you can see, the logo represents a recursive secure shell that
produces lambda-bubbles (aka closures). I'm expecting that the logo
will be evolving with the time, and the current version seems to be a
good start.
* What is Guile-SSH?
Guile-SSH is a library that provides access to the SSH protocol[2] for
programs written in GNU Guile interpreter. It is built upon the
libssh[3] 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 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.
* 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.9.0 (2015-12-24)
** Bugfixes
*** Fix a bug in distributed forms in handling of REPL errors
Distributed procedures now throw an 'node-repl-error' on an evaluation
error instead of returning of an unspecified value.
*** Fix a bug in handling of strings in distributed forms
The 'rrepl-eval' was always failing to send sexps that contain strings in
the proper way because the procedure uses the human-readable printing to
transmit the data. As the result an RREPL fails to evaluate it and
reports an error. The bug is fixed by switching to the machine-readable
data printing.
*** 'dist-map' and 'distribute' now raise an error if an evaluation failed
instead of silently return an empty list.
*** 'channel-listen-forward' now returns a correct port number
'channel-listen-forward' would always return garbage as the 2nd argument
when called with port > 0. Now when the port is explicitly specified then
the procedure returns the specified port as the 2nd argument.
*** Add missing export of 'node-tunnel' from (ssh dist node) module
** Changes in API
*** Distributed forms now return the number of evaluation as a number
instead of string.
*** 'with-ssh' is now capable of handling of multiple values
'with-ssh' now returns a vector of values if an expression was evaluated to
multiple values. 'distribute' and 'dist-map' only take the 1st value if
multiple values were returned by an expression.
*** Nodes are now capable of starting and stopping a remote REPL (RREPL)
The new behaviour is controlled by 'start-repl-server?' and
'stop-repl-server?' keyed options of 'make-node'. Stopping of a RREPL
server is disabled by default.
*** Channels now can be created as input, output or bi-drectional ports
The direction of a channel is controlled by the 2nd argument to
'make-channel' procedure.
*** 'make-session' now takes 'config' option
that allows to specify whether the SSH config should be parsed or not, and
optionally the path to the config.
** New procedures
*** New procedure 'node-server-running?' in (ssh dist node)
*** New procedure 'node-run-server' in (ssh dist node)
*** New procedure 'node-stop-server' in (ssh dist node)
*** New procedure 'node-guile-version' in (ssh dist node)
*** New procedure 'session-parse-config!' in (ssh session)
** New modules
*** (ssh popen)
Remote popen interface to interact with remote processes.
*** (ssh sftp)
SFTP interface that allows to operate on remote files.
** Documentation
*** Move description of tunnels into a separate section
*** Add description of the new procedures
*** Update existing documentation
** Unit tests
*** Expand the test suite for distributed forms
*** Expand the test suite for tunnels
** Add the project logo
--8<---------------cut here---------------end--------------->8---
As usual, comments and bug-reports are very welcome.
Happy hacking!
- Artyom
[1] https://pgp.mit.edu/pks/lookup?search=0x0898A02F&op=index
[2] https://en.wikipedia.org/wiki/Secure_Shell
[3] https://www.libssh.org/
--
Artyom V. Poptsov <poptsov.artyom@gmail.com>; GPG Key: 0898A02F
Home page: http://poptsov-artyom.narod.ru/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-12-24 9:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-24 9:00 [ANN] Guile-SSH 0.9.0 released Artyom Poptsov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).