From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Artyom Poptsov Newsgroups: gmane.lisp.guile.user Subject: [ANN] Guile-SSH 0.8.0 released Date: Tue, 04 Aug 2015 02:03:07 +0300 Message-ID: <87fv40f00k.fsf@elephant.savannah> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Trace: ger.gmane.org 1438643022 14570 80.91.229.3 (3 Aug 2015 23:03:42 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 3 Aug 2015 23:03:42 +0000 (UTC) To: Guile Users' Mailing List Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Aug 04 01:03:34 2015 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZMOlZ-00046v-Pz for guile-user@m.gmane.org; Tue, 04 Aug 2015 01:03:34 +0200 Original-Received: from localhost ([::1]:60736 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZMOlY-0000r7-Py for guile-user@m.gmane.org; Mon, 03 Aug 2015 19:03:32 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZMOlP-0000lY-31 for guile-user@gnu.org; Mon, 03 Aug 2015 19:03:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZMOlK-0007tI-0t for guile-user@gnu.org; Mon, 03 Aug 2015 19:03:23 -0400 Original-Received: from mail-lb0-x230.google.com ([2a00:1450:4010:c04::230]:34099) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZMOlJ-0007t3-Kq for guile-user@gnu.org; Mon, 03 Aug 2015 19:03:17 -0400 Original-Received: by lbqc9 with SMTP id c9so60314958lbq.1 for ; Mon, 03 Aug 2015 16:03:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:user-agent:mime-version :content-type; bh=gtJbVljO/wtb1u11nmSD5TcUE76o5tXat1dlfwVJqRg=; b=PTk8mc7baNTf6gyCSr90RJOxUHlVxOXUSGuBaJlq+dUoyHgmrwvDiPL8sMGwbT8SpJ vR2VALlNdj2xdbh259bs5TnWkgw+Y15SCLmXjsjhvkSGNc/T1QLJEnbWyBVizLYMSmPW W8Y+8l5xjzfU//xJyPNInMdUixV3SoMMPi/eZql+u0sNeZsLiGVfR2vH2yP5OlILnoaM O37hrBFnJqpMnrosx2iaYAf2JBz87HnrM9Q+tuZmgEAq5b+xlktH8iA9uk5CcweLH3sO rMy8km0opLz55etTKpIZJOj1gdZsZFhTiKR9s5kG5lsZQmFVU1wQ+0yspIHWokN0c3y5 YnyA== X-Received: by 10.152.3.199 with SMTP id e7mr385501lae.98.1438642996550; Mon, 03 Aug 2015 16:03:16 -0700 (PDT) Original-Received: from elephant.savannah (109-184-253-187.dynamic.mts-nn.ru. [109.184.253.187]) by smtp.gmail.com with ESMTPSA id rl1sm3309841lac.14.2015.08.03.16.03.14 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 03 Aug 2015 16:03:15 -0700 (PDT) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c04::230 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:11939 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello Guilers, I'm pleased to announce Guile-SSH 0.8.0: https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.8.0 A signed package can be found here: - ftp://memory-heap.org/software/guile-ssh/guile-ssh-0.8.0.tar.gz - ftp://memory-heap.org/software/guile-ssh/guile-ssh-0.8.0.tar.gz.sig Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs. Guile-SSH 0.8.0 API is sufficient for building of SSH servers and SSH clients. In addition, it provides key management facilities that allow to read and manipulate private and public keys, and generate new keypairs. Note that this release breaks bawkward compatibility with Guile-SSH 0.7.2 due to deletion of 'channel-open-forward/reverse' procedure from (ssh channel) module (I suspect the procedure had no use anyway). Aside From=20that, an application that worked with Guile-SSH 0.7.2 likely will work with Guile-SSH 0.8.2 with little or no modification. The release includes an experimental distributed forms module that contains procedures for interaction with remote REPLs (RREPLs) over SSH. Here's an example of evaluation of scheme code on a RREPL by means of 'with-ssh' procedure: =2D-8<---------------cut here---------------start------------->8--- (use-modules (ssh session) (ssh auth) (ssh dist)) (let ((session (make-session #:user "alice" #:host "www.example.org"))) (connect! session) (userauth-agent! session) (display (with-ssh (make-node session) (gethostname))) (newline)) =2D-8<---------------cut here---------------end--------------->8--- And here's an example of 'dist-map' usage. In this example, we're spreading the job of multiplying the list of numbers to two RREPLs: =2D-8<---------------cut here---------------start------------->8--- (dist-map (list node-1 node-2) (lambda (n) (* n n)) (make-list 10000 500)) =2D-8<---------------cut here---------------end--------------->8--- Also there is a new (ssh tunnel) module that provides procedures for making of SSH tunnels. As a practical example, one could make a Guile-RPC[1] call over an SSH tunnel as follows: =2D-8<---------------cut here---------------start------------->8--- (let ((t (make-tunnel session #:port 12345 ;; Suppose a Guile-RPC server listens on ;; 127.0.0.1:23456 on the remote host: #:host "127.0.0.1" #:host-port 23456))) (call-with-ssh-forward t (lambda (socket) (RPC-PROGRAM-proc some-data #x123 socket)))) =2D-8<---------------cut here---------------end--------------->8--- Here's an excerpt from the NEWS file: =2D-8<---------------cut here---------------start------------->8--- * Changes in version 0.8.0 (2015-08-04) ** Implement port forwarding ** Add distributed forms ** Require libssh 0.6.4 or 0.6.5 ** New module: (ssh tunnel) The module provides hi-level procedures for SSH tunneling. ** New module: (ssh dist) The module provides distributed forms of 'map' and 'eval', as well as remote REPL (RREPL) implementation. ** New module: (ssh dist job) Low-level API for distributed jobs. ** New module: (ssh dist node) Low-level API for distributed nodes. ** New procedure 'channel-accept-forward' in (ssh channel) ** New procedure 'channel-listen-forward' in (ssh channel) ** Remove 'channel-open-forward/reverse' procedure from (ssh channel) ** Examples *** Add an RPC client example Add an example program that does an RPC call over a secure channel using a Guile-SSH tunnel. See 'examples/rpc' directory. *** Add a RREPL example Add a demo program that connects to a remote REPL (RREPL). ** Update documentation =2D-8<---------------cut here---------------end--------------->8--- In addition, the structure of the Info documentation was updated, so it should be easier now for a programmer to get started with Guile-SSH API. As always, comments and bug reports are very welcome. I'm especially interested in comments related to new Guile-SSH features -- it was fun to tinker with distributed forms and SSH tunnels, but I'd love to hear your opinion, Guilers, on what features are really useful for you, what aren't so useful and what needs to be fixed. Thanks! =2D Artyom [1] https://www.gnu.org/software/guile-rpc/ =2D-=20 Artyom V. Poptsov ; GPG Key: 0898A02F Home page: http://poptsov-artyom.narod.ru/ --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCgAGBQJVv/MsAAoJEOnFotkImKAvQGUH/jToVkdcEmZrgvflEdsK6j5/ wAQ3uhBd2bUHUO5inDXUOqh7VlaisuaHTyxfWfYxOV+346UPMVbCnwi0lfMtTa/3 glMAFJgeqyxRDfBQlRzqbvRy7NdEd7f6ep45IvlhjURylzCqyfv0TofOA913WCKB PK090UZfHdeZrDhN3Unbec7daR43JcW6sjV4QBxFHpUtzm/wdSqio0urDo0V6QIE 0qzobgozSUJMUQJi3z12h7ZFj98+zNH9xcIcRGo9uUAzNrxUneOr5zuw02pZQN62 /Pe6s+YCLQUzyJuaIKC+VWy08XWrKhtmqA83819Y7dBjxho6FbHYzuYco5aAn4Y= =JLcP -----END PGP SIGNATURE----- --=-=-=--