Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Clojars Project

A promise library & concurrency toolkit for Clojure and ClojureScript.

This library exposes a bunch of usefull syntactic abstractions that will considerably simplify to work with promises (in a very similar way as you will do it in JS with async/await) and many helpers from executors to concurrency patterns (bulkhead & CSP). With 0 runtime external dependencies.

Here you can look a detailed documentation.

Getting Started


funcool/promesa {:mvn/version "10.0.571"}


[funcool/promesa "10.0.571"]

On the REPL

(require '[promesa.core :as p])

(->> (p/promise 1)
     (p/map inc)
;; => 2


If you miss something, feel free to open an issue for a discussion. If there is a clear use case for the proposed enhacement, the PR will be more thank welcome.


Run the Clojure (.clj) tests:

clojure -X:dev:test

Run the ClojureScript (.cljs) tests:

npm install
npm test