cl-srpc - Common Lisp Secure RPC, evaluating lisp expressions over the network using Ironclad encryption

A package that uses ironclad, usocket, and cl-marshal to evaluate lisp expressions over an encrypted network connection, permitting both immediate and deferred (promise) results.

Available at:

License: Public Domain except for file based on trivial-utf-8-srpc.lisp, which is also redistributable but credited to original author.


;; on both client and server
(asdf:load-system "cl-srpc")

On Server

(defparameter *server*
  (make-instance 'cl-srpc:server
    :cipher-args cl-srpc::*default-cipher* ;; or your own ironclad cipher
    :address ""  
    :port 50000))

On Client

(defparameter *client*
  (make-instance 'cl-srpc:client
    :cipher-args cl-srpc::*default-cipher*
    :remote-address ""  ;; same as server
    :remote-port 50000))         ;; same as server

(cl-srpc:execute-remote-call *client* :expression '(+ 1 2))
  ==> (3)  ;; values returned inside list