If running the Portal runtime in process is not supported or not desired, values can be sent over the wire to a remote instance.
The following clients are currently implemented:
portal.client.jvm
portal.client.node
portal.client.web
portal.client.planck
In the process hosting the remote api, do:
(require '[portal.api :as p])
(p/open {:port 5678})
In the client process, do:
(require '[portal.client.jvm :as p])
;; (require '[portal.client.node :as p])
;; (require '[portal.client.web :as p])
(def submit (partial p/submit {:port 5678})) ;; :encoding :edn is the default
;; (def submit (partial p/submit {:port 5678 :encoding :json}))
;; (def submit (partial p/submit {:port 5678 :encoding :transit}))
(add-tap #'submit)
note
tap>
'd values must be serializable as edn, transit or json.
Platform specific tips.
Since Planck can load libraries from a jar, you can use the clj
tool to
generate the class path and pass it in via the --classpath
cli argument.
To start a Planck with Portal REPL, do:
clj -Spath -Sdeps '{:deps {djblue/portal {:mvn/version "LATEST"}}}' > .classpath
planck -c `cat .classpath`
Then at the REPL, do:
(require '[portal.client.planck :as p])
(def submit (partial p/submit {:port 5678}))
(add-tap #'submit)
(tap> :hello-from-planck)
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close