skillfed

promise

Promises/A+ implementation for Python

promise v2.3 3.3M downloads/30d#2,676 on PyPI367
Permissive license MIT DORMANT released

What it is and what it does

Promise is a Python implementation of the Promises/A+ specification, a standard for handling asynchronous operations through chainable callbacks. It lets you wrap async work in a Promise object, resolve or reject it with a value, and attach handlers via .then() and .catch() that execute when the promise settles. The library supports composing multiple promises (Promise.all, Promise.for_dict) and wrapping existing futures.

The package has no runtime dependencies and works with Python 2.7 through 3.8 (and PyPy). It is designed to be a readable, performant alternative to raw callbacks for async patterns in Python, though modern Python now has native async/await syntax and asyncio, which may be preferable for new code.

Use it for:

  • Wrapping callback-based async operations (e.g., I/O) in a chainable Promise interface for cleaner control flow
  • Composing multiple async tasks with Promise.all() to wait for all to complete before proceeding
  • Converting Python Futures into Promises for interoperability with promise-based libraries or frameworks
  • Building promise-based libraries or frameworks that need a standard async abstraction layer
  • Handling rejection and error propagation through .catch() in async workflows without explicit try/except nesting

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Implements Promises/A+ specification for Python, enabling asynchronous value resolution and rejection with chainable then/catch handlers.

Yes-with-conditions. The package is stable (MIT, no known vulnerabilities, 367 GitHub stars) but dormant since 2019. Install only if you are maintaining legacy code that already uses promise or integrating with a framework that requires it. For new projects, use Python's native async/await and asyncio instead.

Install

promise on PyPI

pip

pip install promise

uv

uv add promise

poetry

poetry add promise

Installing promise

Before you install

High install friction due to source-only distribution (promise-2.3.tar.gz). Maintenance is dormant—last release was 2019-12-18 and last commit 2024-07-09, with no active development signals.

License in practice

MIT license (permissive) places no restrictions on use, modification, or distribution. Safe for commercial and open-source projects.

Quickstart

from promise import Promise

promise = Promise(lambda resolve, reject: resolve('RESOLVED!'))
result = promise.then(lambda value: print(value))

Verify before relying

  • Whether promise.get() method exists and how it blocks/retrieves resolved values (shown in docs but not formally specified)
  • Python 3.9+ compatibility—classifiers list only up to 3.8; current support unclear
  • Whether this package is maintained or if a modern alternative is recommended for new projects

Package facts

License MIT (permissive)
Python support not specified
Install friction high — source build required
Runtime dependencies none
Maintenance dormant — 2,431 days since the last release
Last repo commit
First released
Downloads 3,280,496/month — #2,676 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: promise-2.3.tar.gz

Keywords: concurrent, future, deferred, promise

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries

Tags

promises async pattern pythonpromises/a+ implementationdeferred value resolutionchainable async callbackspromise then catchfuture-like promisesconcurrent value handling
async-patternlegacy-maintained

More Libraries packages