Pion is a modern stack for web real-time communication. It works almost everywhere thanks to Go. Ship to Mobile, Desktop, Servers and WASM all with one code base.
This is free and open source software.
Key Features
- PeerConnection API
- Go implementation of webrtc-pc and webrtc-stats
- DataChannels
- Send/Receive audio and video
- Renegotiation
- Plan-B and Unified Plan
- SettingEngine for Pion specific extensions
- Connectivity
- Full ICE Agent
- ICE Restart
- Trickle ICE
- STUN
- TURN (UDP, TCP, DTLS and TLS)
- mDNS candidates
- DataChannels
- Ordered/Unordered
- Lossy/Lossless
- Media
- API with direct RTP/RTCP access
- Opus, PCM, H264, VP8 and VP9 packetizer
- API also allows developer to pass their own packetizer
- IVF, Ogg, H264 and Matroska provided for easy sending and saving
- getUserMedia implementation (Requires Cgo)
- Easy integration with x264, libvpx, GStreamer and ffmpeg.
- Simulcast
- SVC
- NACK
- Sender/Receiver Reports
- Transport Wide Congestion Control Feedback
- Bandwidth Estimation
- Security:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 and TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA for DTLS v1.2
- SRTP_AEAD_AES_256_GCM and SRTP_AES128_CM_HMAC_SHA1_80 for SRTP
- Hardware acceleration available for GCM suites
- Pure Go:
- No Cgo usage
- Wide platform support
- Linux, FreeBSD, Android, iOS macOS, and Windows.
- iOS, Android
- WASM
- 386, amd64, arm, mips, ppc64
- Easy to build Numbers generated on Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
- Time to build examples/play-from-disk – 0.66s user 0.20s system 306% cpu 0.279 total
- Time to run entire test suite – 25.60s user 9.40s system 45% cpu 1:16.69 total
- Tools to measure performance provided
Website: pion.ly
Support:
Developer: The Pion community
License: MIT License
Pion is written in Go. Learn Go with our recommended free books and free tutorials.
Related Software
| WebRTC Tools | |
|---|---|
| mediasoup | Server-side WebRTC library, specifically a Selective Forwarding Unit (SFU |
| Pion | Modern stack for web real-time communication |
| Jitsi | Innovative voice and video conferencing |
| LiveKit | End-to-end stack for WebRTC |
| SRS | Real-time media server |
| OpenVidu | Platform to develop WebRTC real-time applications |
| Janus | Gneral purpose WebRTC server |
| BigBlueButton | Virtual classroom platform |
| aiortc | Library for WebRTC and ORTC |
| MiroTalk SFU | Self-hosted WebRTC videoconferencing platform |
| MiroTalk P2P | Self-hosted WebRTC video conferencing application |
| coturn | Implementation of TURN and STUN Server |
| Galene | Easy to deploy videoconference server |
| Nextcloud Talk | Chat, video and audio calls for Nextcloud |
| Selkies | Remote desktop and application streaming platform |
| libpeer | Portable WebRTC library for IoT/embedded devices |
| libdatachannel | WebRTC network library |
| Kurento | WebRTC media server |
| str0m | Sans I/O WebRTC implementation |
| Elixir WebRTC | Elixir implementation of the W3C WebRTC API |
| Gryt | Self-hostable, WebRTC-based voice communication app |
| PairUX | Collaborative screen sharing with simultaneous remote control |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

