Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Real-Time Communications
  3. rawrtc

rawrtc

BSD-2-ClauseCv0.5.2

A lightweight C library implementing WebRTC and ORTC APIs for real-time communication.

GitHubGitHub
390 stars34 forks0 contributors

What is rawrtc?

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.

Target Audience

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.

Value Proposition

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.

Overview

WebRTC and ORTC with a little bit of RAWR!

Use Cases

Best For

  • Adding WebRTC data channels to embedded Linux devices
  • Building lightweight real-time communication servers in C
  • Implementing ORTC APIs for custom signaling stacks
  • Testing ICE and DTLS connectivity in peer-to-peer networks
  • Developing SFUs (Selective Forwarding Units) with data channel support
  • Creating interoperable WebRTC applications without browser engines

Not Ideal For

  • Applications requiring full TURN server support for reliable NAT traversal in enterprise networks
  • High-performance media servers needing multi-threaded parallelism for handling multiple video streams
  • Rapid prototyping in high-level languages like Python or JavaScript, due to C's manual memory management and lower-level API
  • Environments where TCP-based ICE candidates are essential due to UDP being blocked or restricted

Pros & Cons

Pros

Minimal Resource Footprint

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.

Standards-Compliant APIs

Implements both WebRTC C-API (W3C/JSEP-based) and ORTC C-API, ensuring interoperability with browsers and other WebRTC implementations as per IETF drafts.

No Message Size Limits

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.

Comprehensive Tool Suite

Includes command-line tools for testing ICE, DTLS, SCTP, and data channels, which facilitate debugging and integration without needing external testing frameworks.

Cons

Incomplete Protocol Support

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.

C Language Barrier

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.

Complex Build Setup

Depends on meson and ninja for building, with additional steps for enabling certain tools, adding overhead compared to simpler package managers or precompiled libraries.

Single-Threaded Bottleneck

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.

Frequently Asked Questions

Quick Stats

Stars390
Forks34
Contributors0
Open Issues57
Last commit4 years ago
CreatedSince 2017

Tags

#data-channels#c-library#single-threaded#embedded#real-time-communication#sctp#webrtc#peer-to-peer#ice

Built With

O
OpenSSL
N
Ninja
M
Meson
C
C++

Included in

Real-Time Communications471
Auto-fetched 1 day ago

Related Projects

libdatachannellibdatachannel

C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets

Stars2,592
Forks541
Last commit8 days ago
libSRTPlibSRTP

Library for SRTP (Secure Realtime Transport Protocol)

Stars1,384
Forks515
Last commit6 days ago
usrsctpusrsctp

A portable SCTP userland stack

Stars752
Forks303
Last commit7 months ago
librelibre

Generic library for real-time communications with async IO support

Stars546
Forks175
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub