看起来利用pulsar的核心async实现的工作应该很直接(pulsar的作者我认为正在做Loom)
pulsar.async
看起来你只需要用pulsar的fiber API替换它,或者直接复制遗留的clojure代码,或者仅仅创建一个小小的Fiber类和相关的shim
保持与遗留core.async的API兼容性似乎是个不错的选择,所以代码可以便携地在clj/cljs之间转换。我认为这主要给你带来的好处是能够在你的go-blocks中拥有任意函数/闭包,并重新启用诸如for或其他使用局部创建的闭包实现某物的常见惯例。
这可能意味着你会得到功能集的超集(例如,core.async在jvm上可以做到更多),这意味着编写可移植代码的人必须注意可能的兼容性问题。
鉴于多年来观察到的抱怨较少,我很想知道目标市场是谁。