peers/peerjs

Simple peer-to-peer with WebRTC.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 15 minutes ago
Added to GitGenius on September 4th, 2026
Created on December 23rd, 2012
Open Issues & Pull Requests: 201 (+0)
GitHub issues: Enabled
Number of forks: 1,461
Total Stargazers: 13,439 (+0)
Total Subscribers: 243 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 39
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,162 days
Stale 30+ days: 39
Stale 90+ days: 38

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (30)
  • unconfirmed (24)
  • client (23)
  • confirmed (3)
  • help wanted (2)
  • investigating (2)
  • other (2)
  • released (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

PeerJS is a peer-to-peer library that wraps WebRTC to provide a simpler API for browser-based connections.

The library abstracts away the complexity of WebRTC by offering a complete, configurable API for establishing direct connections between browsers. It supports both data channels for arbitrary message passing and media streams for audio and video. Developers create a Peer instance, then initiate or receive either data connections or media calls using straightforward method calls, with the underlying WebRTC signaling handled by PeerJS.

PeerJS suits projects that need direct browser-to-browser communication without server intermediaries for the actual data transfer. It works across modern versions of Chrome, Edge, Firefox, and Safari. The library requires a signaling server to establish initial connections between peers, though the actual data and media flow peer-to-peer once connected. The project provides an example application demonstrating both media and data connections, along with a companion PeerServer implementation for handling the signaling layer.

The project maintains active community engagement through a Discord channel where roadmap discussions and feature requests are coordinated. Development is responsive to compatibility concerns, with the team using BrowserStack to test against specified browser versions and treating browser support changes as breaking modifications. The codebase is written in TypeScript and built with Parcel, though there is a known non-critical console warning when bundling with Webpack that the maintainers plan to address in a future Parcel upgrade.