events

A standalone, browser-compatible port of Node.js's built-in EventEmitter

Library
npm
v3.3.0
1,408stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
42/100Fair
Development Activity0
Maintenance20
Community60
Maturity60
Momentum28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
67/100Good
Architecture60
Code Quality78
Innovation40
Learning Curve90

events is a from-scratch reimplementation of Node.js’s core events module, ported to ES5 so it can run in environments — chiefly web browsers — that don’t ship Node’s built-in EventEmitter. It deliberately tracks the Node.js API as closely as possible (contributions are expected to be copy-pasted and transpiled from Node.js source rather than reimplemented independently), so code written against Node’s EventEmitter behaves identically when bundled for the browser.

Most developers never install it directly: bundlers like Browserify and Webpack automatically substitute this package whenever bundled code does require('events'), which is why it accumulates tens of millions of weekly downloads despite being a small, rarely-updated utility. Originally authored by Irakli Gozalishvili (Gozala/events), the repository now lives under the browserify GitHub organization, which Gozala’s original repo redirects to.

What You Get

  • An EventEmitter class with the full Node.js events API surface (on, once, off, emit, removeListener, removeAllListeners, etc.)
  • prependListener/prependOnceListener support matching Node’s ordering semantics
  • Max-listener leak warnings identical to Node’s built-in behavior
  • Special handling of the 'error' event (throws if unhandled, matching Node.js)
  • Zero runtime dependencies and ES5-only syntax for broad browser compatibility

Common Use Cases

  • Automatic substitution by Browserify/Webpack whenever bundled code calls require('events') in a browser build
  • Using the familiar Node.js EventEmitter API in isomorphic (universal) JavaScript code that runs in both Node and the browser
  • Porting a Node.js library that depends on events to run client-side without rewriting its event-handling logic
  • Lightweight pub/sub within a browser application without pulling in a heavier event-bus library

Under The Hood

Architecture The entire implementation lives in a single 497-line events.js file exporting one EventEmitter constructor with prototype methods (on, once, off, emit, listenerCount, prependListener, etc.) — there is no module decomposition because the surface area intentionally mirrors Node.js’s own single-file events core module line-for-line. Tech Stack Pure ES5 with zero runtime dependencies; the project explicitly avoids modern syntax to maximize compatibility with older browsers and bundlers, and its own README recommends pairing it with es5-shim for very old targets like IE8. Code Quality The tests/ directory is unusually granular for its size — separate files for max-listeners.js, listener-count.js, prepend.js, remove-listeners.js, special-event-names.js, and subclass.js, each targeting one specific behavior, mirroring Node.js’s own upstream test suite so behavioral drift from Node is caught immediately. API Design By design there is no independent API — the project’s contribution guidelines require new code to be copy-pasted and transpiled from Node.js’s own lib/events.js rather than reimplemented, so its ergonomics are exactly Node’s: familiar to any Node developer, with the tradeoff that browser-specific ergonomics were never a design goal.

Used by 17 apps in this directory

TypeScript
96%
Other

Amplication

Developer Tools · AI Code Assistants · Automation

16,010

Create production-ready backend services with your organization's standards baked in — generating NestJS, Prisma, and GraphQL code that you own and control.

View details
61
Repo Health
84
Technical
60
Dependency
Built with
TypeScript96%
Updated 1 months ago
Rust
67%
MIT

Bun

Developer Tools

95,452

An all-in-one JavaScript and TypeScript toolkit — one Rust-and-JavaScriptCore binary that replaces Node.js, npm, a bundler, and a test runner with faster equivalents.

View details
92
Repo Health
91
Technical
66
Dependency
Built with
Rust67%
C++19%
Updated today
Go
52%
MIT

Bytebase

Devops

14,396

An open-source database CI/CD and DevSecOps platform — schema migration review, GitOps-driven changes, data masking, and access control across MySQL, PostgreSQL, Oracle, Snowflake, MongoDB, and more.

View details
92
Repo Health
73
Technical
69
Dependency
Built with
Go52%
TypeScript39%
Updated today
TypeScript
53%
Other

Chaskiq

CRM · Customer Support

3,560

Self-hosted live chat, video calls, help center, and marketing automation — a full-stack Intercom alternative you run on your own infrastructure.

View details
60
Repo Health
66
Technical
68
Dependency
Built with
TypeScript53%
Ruby36%
Updated 1 months ago
JavaScript
90%
Other

CodeSandbox

Code Editors · Developer Tools

13,633

Instantly ready browser-based IDE that runs full npm dependency resolution and transpilation entirely client-side, with no server needed.

View details
65
Repo Health
76
Technical
63
Dependency
Built with
JavaScript90%
Updated 1 months ago
PHP
78%
Other

Craft CMS

CMS

3,601

A developer-first PHP CMS with clean-slate content modeling, auto-generated GraphQL API, and a four-tier edition system that scales from solo projects to enterprise deployments.

View details
96
Repo Health
83
Technical
63
Dependency
Built with
PHP78%
JavaScript14%
Updated today
TypeScript
94%
AGPL 3.0

Element Web

Team Chat · Collaboration

13,387

A polished, self-hostable Matrix client for secure, decentralized messaging and collaboration that puts your organization in full control of its data.

View details
96
Repo Health
83
Technical
67
Dependency
Built with
TypeScript94%
Updated today
Java
34%
Apache 2.0

Enso

Analytics · Data Engineering · Low Code Platforms

7,437

A visual and textual programming platform for data prep and analysis where the node graph and the underlying Enso code are always perfectly in sync, built by an Alteryx co-founder on a GraalVM engine.

View details
70
Repo Health
90
Technical
62
Dependency
Built with
Java34%
TypeScript27%
Scala26%
Updated 1 weeks ago
TypeScript
91%
Apache 2.0

Helicone

Monitoring · AI Development · Analytics

6,083

An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.

View details
62
Repo Health
81
Technical
66
Dependency
Built with
TypeScript91%
Updated 3 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search