ebb is a port of missionary to Jolt: the same composable tasks (one value, eventually) and flows (many values, with backpressure), the same real cancellation and glitch-free dataflow propagation, running on Jolt's Chez Scheme runtime over fibers instead of the JVM. Every public var of missionary's API is supported, including the three process primitives sp, ap and cp, the propagator and reactor, every port and flow operator, via/blk/cpu, and publisher/subscribe.
Missionary's own test namespaces run against ebb unmodified, except where conformance says otherwise: 281 tests and 1187 assertions, 196 of those straight from missionary itself.
impl/ follows them.ebb.conformance-test checks this page against on every test run - read it on GitHub rather than here, since it's data, not a page.Ebb needs Jolt v0.8.1 or newer. There's no release on Clojars yet; depend on it as a git library by pinning a commit:
{:deps {jlt-commons/ebb {:git/url "https://github.com/jlt-commons/ebb"
:git/sha "<full-sha>"}}}
bin/test # the whole suite
bin/test ebb.rdv-test # one namespace
CONTRIBUTING.md covers building, testing and porting, plus the conventions a change is expected to follow. model/README.md, in the repo itself, holds core.logic models that enumerate every interleaving of the concurrency design.