PHPackages                             quasarstream/webrtc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. quasarstream/webrtc

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

quasarstream/webrtc
===================

This package provides a complete WebRTC implementation written entirely in PHP

v1.0.3(7mo ago)126743↓56.3%4[3 issues](https://github.com/PHP-WebRTC/webrtc/issues)1BSD-3-ClausePHPPHP ^8.4CI passing

Since May 14Pushed 7mo ago3 watchersCompare

[ Source](https://github.com/PHP-WebRTC/webrtc)[ Packagist](https://packagist.org/packages/quasarstream/webrtc)[ Docs](https://www.quasarstream.com/webrtc)[ RSS](/packages/quasarstream-webrtc/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (11)Versions (6)Used By (1)

WebRTC In PHP
=============

[](#webrtc-in-php)

[![PHP Version](https://camo.githubusercontent.com/9c2f8ad80d34105266a94c4c06234f8ed18c968d3595039c2d9a7becd1e71c8b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e342d626c75652e737667)](https://php.net/)[![License](https://camo.githubusercontent.com/2b599ab1ace97388d4375b87919f92781a1a61d016fe640a5c4d15fc365deed1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4253442d626c75652e737667)](LICENSE)

This package provides a complete WebRTC implementation written entirely in PHP, including support for ICE, DTLS, SRTP, SCTP, RTP, and data channels. Designed for real-time audio, video, and data communication, it enables peer-to-peer connectivity without relying on external WebRTC libraries. Built with modular components and fully asynchronous using ReactPHP.

Features
--------

[](#features)

- Full peer-to-peer WebRTC stack in native PHP
- Implements ICE for NAT traversal and candidate negotiation
- Secure communication via DTLS and SRTP
- Reliable data transfer with SCTP and support for data channels
- RTP/RTCP handling for real-time audio and video streaming
- Modular design with support for custom signaling implementations
- Built on top of ReactPHP for asynchronous, non-blocking performance

Requirements
------------

[](#requirements)

- PHP ≥ 8.4 with FFI and GMP extension enabled
- OpenSSL development libraries
- Srtp development libraries
- Linux environment (Windows/macOS support planned)
    - **Windows users:** Use [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) or Docker Desktop. *Note: Native Windows support is planned for an upcoming releases (in a few months.).*
    - **macOS users:** Use an emulator like [UTM](https://mac.getutm.app/) or run the project using Docker. *Note: Native macOS support is coming in a few months.*
- FFmpeg/libav shared libraries (libavcodec, libavfilter, etc.)
    - Compatible with FFmpeg **version 7.1.1**
- libopus development libraries
- libvpx development libraries
    - Compatible with libvpx **version 1.15.0**

Documentation
-------------

[](#documentation)

This package is part of the PHP WebRTC library. For complete documentation, examples, and API reference, visit:

[PHP WebRTC Documentation](https://www.quasarstream.com/php-webrtc)

Credits
-------

[](#credits)

### Authors

[](#authors)

- **Amin Yazdanpanah**

    - Website: [aminyazdanpanah.com](https://www.aminyazdanpanah.com)
    - Email:
- **Sana Moniri**

    - GtiHub: [sanamoniri](https://github.com/sanamoniri)

Reporting Issues
----------------

[](#reporting-issues)

Found a bug? Please report it on our [issues](https://github.com/php-webrtc/webrtc/issues).

Contributors
------------

[](#contributors)

Your contribution is crucial to our success, regardless of its size. We appreciate your support and encourage you to read our **[CONTRIBUTING](https://github.com/php-webrtc/webrtc/blob/master/CONTRIBUTING.md)**guide for detailed instructions on how to get involved. Together, we can make a significant impact.

### Our Plans for the Future

[](#our-plans-for-the-future)

We are not stopping here. We're actively continuing development on the PHP WebRTC packages.

Right now, we're working privately on a **[Selective Forwarding Unit (SFU)](https://quasarstream.com/blog/sfu/)** implementation and a **Laravel package that bundles everything together**, including this WebRTC package. Once that's ready, our goal is to build a **minimal video conferencing web** app using Laravel, and to continue maintaining this repository along with 24 other related packages.

If you're interested in building real-time communication tools in PHP, like a video conferencing app, you are more than welcome to join the project. Fork the repos, contribute to them, and help grow this community.

Please note: contributions should primarily focus on fixing bugs. If you'd like to add a new feature or function, it must match the original WebRTC API behavior. For example, if you want to add a method to the **[`RTCPeerConnection`](https://github.com/PHP-WebRTC/webrtc/blob/master/src/RTCPeerConnection.php)** class, it should exist in the original **[JavaScript WebRTC API](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection)** and follow the same naming and purpose.

### Want to Collaborate?

[](#want-to-collaborate)

If you'd like to become a contributor or teammate, we’d love to hear from you. This is an open source, non-profit project, so we’re mainly looking for passionate developers.

You should have at least one project that demonstrates your knowledge and ability in PHP, Laravel, and WebRTC(only one of them is also enough). If that sounds like you, this could be a great place to get involved.

Feel free to reach out by email(via ) with your GitHub username (for example: github.com/your-username) and we’ll get back to you soon.

License
-------

[](#license)

BSD 3-Clause License. See [LICENSE](LICENSE) for details.

References
----------

[](#references)

- [WebRTC Overview](https://webrtc.org/)

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance63

Regular maintenance activity

Popularity33

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~48 days

Total

4

Last Release

222d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a73aaac753c327bdc55306a38bb829db7a8435ef17a742d94f2917bbf1bfc12e?d=identicon)[aminyazdanpanah](/maintainers/aminyazdanpanah)

---

Tags

live-streamingphpphp8-4webrtcwebrtc-videoWebRTCrtp

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/quasarstream-webrtc/health.svg)

```
[![Health](https://phpackages.com/badges/quasarstream-webrtc/health.svg)](https://phpackages.com/packages/quasarstream-webrtc)
```

###  Alternatives

[react/stream

Event-driven readable and writable streams for non-blocking I/O in ReactPHP

689126.8M194](/packages/react-stream)[react/child-process

Event-driven library for executing child processes with ReactPHP.

34076.1M136](/packages/react-child-process)[alchemy/binary-driver

A set of tools to build binary drivers

19110.9M39](/packages/alchemy-binary-driver)[react/zmq

ZeroMQ bindings for React.

2471.7M31](/packages/react-zmq)[php-junior/laravel-video-chat

Laravel Video Chat using Socket.IO and WebRTC

82018.1k](/packages/php-junior-laravel-video-chat)[wyrihaximus/react-child-process-pool

Pool wyrihaximus/react-child-process-messenger processes

40244.4k5](/packages/wyrihaximus-react-child-process-pool)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
