A lightweight C library implementing WebRTC and ORTC APIs for real-time communication.
RAWRTC is a C library that implements the WebRTC and ORTC standards for establishing real-time peer-to-peer connections. It enables developers to add data channel and media streaming capabilities to applications using a lightweight, single-threaded architecture. The library focuses on low resource consumption while providing standards-compliant APIs.
C developers building real-time communication features into embedded systems, IoT devices, or applications where a small footprint is essential. It's also suitable for those needing a WebRTC/ORTC implementation without browser dependencies.
RAWRTC offers a minimal, portable WebRTC/ORTC stack in C, with no arbitrary message size limits on data channels. Its single-threaded design and comprehensive tool suite make it easier to integrate and test in resource-constrained environments compared to heavier alternatives.
WebRTC and ORTC with a little bit of RAWR!
Emphasizes a small footprint and single-threaded event-driven architecture, making it ideal for embedded systems and IoT devices with limited memory and CPU resources.
Implements both WebRTC C-API (W3C/JSEP-based) and ORTC C-API, ensuring interoperability with browsers and other WebRTC implementations as per IETF drafts.
Supports data channels with messages up to 16 MiB without arbitrary size restrictions, unlike many other implementations that cap message sizes, as highlighted in the provided tools.
Includes command-line tools for testing ICE, DTLS, SCTP, and data channels, which facilitate debugging and integration without needing external testing frameworks.
Lacks implementation of key features like TURN support, TCP for ICE and STUN, and some transport protocols, as shown in the README's unchecked feature list, limiting NAT traversal options.
Requires proficiency in C programming and manual memory management, making it less accessible for developers accustomed to higher-level languages with garbage collection or built-in WebRTC support.
Depends on meson and ninja for building, with additional steps for enabling certain tools, adding overhead compared to simpler package managers or precompiled libraries.
While efficient for low-resource environments, the single-threaded event loop can become a performance bottleneck for CPU-intensive tasks like real-time media processing or high-concurrency scenarios.
C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets
Library for SRTP (Secure Realtime Transport Protocol)
A portable SCTP userland stack
Generic library for real-time communications with async IO support
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.