federkasten.butler

https://github.com/federkasten/butler.git

git clone 'https://github.com/federkasten/butler.git'

(ql:quickload :federkasten.butler)
45

butler

Bring Web Workers to ClojureScript

Usage

Add the following dependency to your project.clj:

[butler "0.2.0"]

Example

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.

License

Copyright Takashi AOKI and other contributors.

Licensed under the Apache License, Version 2.0.