Federkasten Butler Save

Bring Web Workers to ClojureScript

Project README

butler

Bring Web Workers to ClojureScript

  • Simple API
  • Suitable for Clojure data structure
  • Support transferable objects

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.

Open Source Agenda is not affiliated with "Federkasten Butler" Project. README Source: federkasten/butler
Stars
48
Open Issues
0
Last Commit
8 years ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating