Bring Web Workers to ClojureScript
- Simple API
- Suitable for Clojure data structure
- Support transferable objects
Add the following dependency to your project.clj
:
[butler "0.2.0"]
Create web workers and define its response handlers in main thread, and tell to workers via work!
;
(require '[butler.core :as butler])
(enable-console-print!)
;; Create a web worker with script and handlers.
(def example-butler (butler/butler "path/to/worker.js" {:foo (fn [res]
(println res))}))
(butler/work! example-butler :request-foo "foo")
In worker threads, define handlers of requests using serve!
and send results to the main thread using bring
;
(require '[butler.core :as butler])
(defn run-foo [req]
;; some heavy heavy jobs
(butler/bring! :foo "hello"))
(def handlers {:request-foo run-foo})
(butler/serve! handlers)
See example for more details.
Copyright Takashi AOKI and other contributors.
Licensed under the Apache License, Version 2.0.