Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

funcool/promesa

Open more actions menu

Repository files navigation

promesa

Clojars Project

A promise library & concurrency toolkit for Clojure and ClojureScript.

This library exposes a bunch of useful syntactic abstractions that considerably simplify working 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

deps.edn:

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

You also can get it via git:

funcool/promesa
{:git/sha "1f94377"
 :git/tag "12.0.0"
 :git/url "https://github.com/funcool/promesa"}

On the REPL

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

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

NOTE: example only work on JVM because the evident lack of blocking primitives on JS runtime.

Contributing

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

Testing

Run the Clojure (.clj) tests:

clojure -M:dev -m promesa.tests.main

Run the ClojureScript (.cljs) tests:

corepack enable
corepack install
yarn install
yarn run test

Run the Babashka tests:

bb test:bb

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.