skillfed

pyee

A rough port of Node.js's EventEmitter to Python with a few tricks of its own

pyee Permissive license MIT Active 429 v14.0.0 released

Install

pyee on PyPI

pip

pip install pyee

uv

uv add pyee

poetry

poetry add pyee

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.12)
Install friction low — pure-Python wheel
Runtime dependencies 1 — typing-extensions
Maintenance actively maintained — 0 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: pyee-14.0.0-py3-none-any.whl

Keywords: events, emitter, node.js, node, eventemitter, event_emitter

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Other/Nonlisted Topic

About pyee

from the package's own PyPI description — quoted content, verbatim

pyee

Documentation Status (image)

pyee supplies a EventEmitter object that is similar to the EventEmitter class from Node.js. It also supplies a number of subclasses with added support for async and threaded programming in python, such as async/await.

Docs

Autogenerated API docs, including basic installation directions and examples, can be found at <https://pyee.readthedocs.io>.

Development

See DEVELOPMENT.md.

Changelog

See CHANGELOG.md.

Contributors

See CONTRIBUTORS.md.

License

MIT/X11, see LICENSE.

Read as markdown · JSON record · Source repository · Docs

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

pyee provides an EventEmitter class for Python that mimics Node.js's event-driven architecture, with support for async/await and threaded programming patterns.

Low friction: single lightweight dependency (typing-extensions), pure Python wheel distribution, and actively maintained with a recent release. Repository shows steady engagement with 429 stars and current Python 3.12+ support.

MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal obligations—only attribution required.

Usage

pip install pyee
from pyee import EventEmitter
ee = EventEmitter()
@ee.on('event')
def handler(data):
    print(data)
ee.emit('event', 'hello')

Requires Python 3.12 or later; async/await features require an async runtime context.

Verdict: pyee is a well-maintained, low-friction event emitter library suitable for event-driven Python applications. Active development, permissive MIT licensing, minimal dependencies, and no known vulnerabilities make it a reliable choice for projects needing Node.js-style event patterns.

Needs verification

  • Whether the async/await subclasses require additional setup or configuration beyond the base EventEmitter
  • Performance characteristics and suitability for high-throughput event scenarios
event emitter pythonnode.js eventemitter portasync event handling pythonpublish subscribe patternevent-driven architecturethreaded event emitterpython event system

Similar packages