Peer Calls provides a streamlined platform for group peer-to-peer video calls, reimagined with a focus on performance using Go and TypeScript. Featuring advanced functionalities such as a Selective Forwarding Unit to enhance bandwidth efficiency, the platform ensures a smooth and user-friendly experience for every participant.
Peer Calls is a robust platform designed for seamless group peer-to-peer video calls, implemented using Go and TypeScript. This solution is built on the WebRTC technology, making it accessible to everyone. Live demonstrations of the application can be experienced at peercalls.com.
The server has been completely rewritten in Go, ensuring all original functionalities are preserved. An optional Selective Forwarding Unit (SFU) implementation is available, contributing to bandwidth efficiency when users upload video. This enhancement was made possible through the use of the pion/webrtc library.
Key Features of v4
- Core rewritten in Go for improved performance.
- Selective Forwarding Unit (SFU) can be enabled by setting the environment variable
NETWORK_TYPE=sfu
. - Flexibility to change audio and video devices without needing to reconnect.
- Enhanced toolbar layout with easy toggle options.
- Multiple video streams displayed in a full-size grid format, with the ability to minimize each stream.
- Video cropping options now customizable.
- Enhanced file transfer capabilities, allowing for larger file sizes.
- Improved handling of device names in the dropdown menu.
- Enhanced features for desktop sharing.
- Easy shareable invite link functionality.
- Various fixes to ensure compatibility and user experience, including toolbar visibility on iOS 12 and auto-playing videos.
Development Requirements
- Node.js version 18.13 or higher
- Go version 1.19.5 or higher
- Alternatively, Docker can be utilized to run Peer Calls.
Technology Stack
- Backend: Developed using Golang, featuring the pion/webrtc library for real-time communication, along with tools like
go-chi
andnhooyr.io/websocket
. - Frontend: Implemented using React, Redux, and TypeScript.
Configuration
Configuration primarily utilizes YAML format, the previous version's configuration is stored in the version-3
branch.
Development and Testing
Development can be facilitated through common scripts such as npm start
to initiate the server or npm run ci
to run all tests and linters. The codebase includes comprehensive logging and debugging options to assist during development.
Browser Support
Peer Calls has been tested across various browsers, including Firefox, Chrome, Safari, and mobile devices. Users experiencing connection issues are encouraged to utilize the same browser version across all peers for optimal functionality.
For detailed installation instructions, configuration options, and deployment methods—including options for Docker and Kubernetes—please refer to the full documentation available in the repository.
No comments yet.
Sign in to be the first to comment.