Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. icey

icey

LGPL-2.1C++2.4.5

A modular C++20 toolkit for real-time media, WebRTC, and networking, combining FFmpeg, libuv, and libdatachannel into a single runtime.

Visit WebsiteGitHubGitHub
1.4k stars352 forks0 contributors

What is icey?

Icey is a modular C++20 toolkit that provides a complete real-time media stack, acting as a lightweight alternative to Google's libWebRTC. It integrates FFmpeg for media processing, libdatachannel for WebRTC transport, and libuv for networking into a single, cohesive runtime model. It solves the problem of dependency hell and complex build systems often associated with building real-time media applications.

Target Audience

C++ developers building real-time communication systems, media servers, video streaming applications, or those needing a self-hosted WebRTC solution without Google's monolithic stack.

Value Proposition

Developers choose Icey for its modular design, fast build times, and comprehensive feature set that includes built-in signalling and TURN server. It offers a cleaner, more integrated alternative to assembling disparate libraries like libWebRTC, FFmpeg, and libuv separately.

Overview

Real-time media stack and lightweight libwebrtc alternative, built in C++20

Use Cases

Best For

  • Building custom WebRTC media servers without Google's libWebRTC
  • Streaming from webcams or video files to browsers in real-time
  • Server-side recording of WebRTC streams for telehealth or proctoring
  • Self-hosting a production TURN relay server for NAT traversal
  • Creating high-performance HTTP/WebSocket servers in C++
  • Developing modular real-time applications with zero-copy media pipelines

Not Ideal For

  • Projects requiring rapid prototyping in higher-level languages like Python or JavaScript
  • Enterprises with strict proprietary licensing that conflict with LGPL dependencies
  • Teams without advanced C++20 and CMake expertise for building and integration

Pros & Cons

Pros

Modular Zero-Copy Pipeline

The PacketStream architecture enables efficient media processing with explicit backpressure and frame-dropping control, minimizing memory overhead as highlighted in the README's pipeline examples.

Built-in Signalling & TURN

Includes Symple for WebRTC signalling and a production-grade RFC 5766 TURN server, eliminating external dependencies for NAT traversal and simplifying real-time communication setups.

High-Performance HTTP Stack

Benchmarks show 72,209 req/sec, outperforming Go's net/http by 34%, due to integration with libuv and llhttp, as documented in the HTTP performance section.

FFmpeg Integration for Any Codec

Leverages FFmpeg for capture, encoding, and decoding, supporting a wide range of media formats without vendor lock-in, as emphasized in the comparison table.

Cons

Complex Dependency Setup

Requires system dependencies like FFmpeg and OpenSSL to be correctly installed and detected; auto-detection helps, but conflicts with existing versions can lead to build issues.

Limited Ecosystem and Community

Compared to established alternatives like GStreamer, Icey has a smaller contributor base and fewer third-party resources, which may slow down bug fixes and feature development.

Steep Learning Curve

Demands deep understanding of WebRTC, media pipelines, and async networking, with documentation focused more on examples than beginner tutorials, as seen in the sample-heavy approach.

Open Source Alternative To

icey is an open-source alternative to the following products:

GStreamer
GStreamer

GStreamer is a pipeline-based multimedia framework that enables the creation of applications for handling audio and video streams, including playback, recording, editing, and streaming.

libwebrtc
libwebrtc

libwebrtc is an open-source library that provides WebRTC (Web Real-Time Communication) functionality, enabling audio, video, and data communication between web browsers and applications.

Frequently Asked Questions

Quick Stats

Stars1,356
Forks352
Contributors0
Open Issues1
Last commit4 days ago
CreatedSince 2012

Tags

#media-server#ffmpeg#c++20#cmake#video-streaming#webrtc#libuv

Built With

O
OpenSSL
l
libuv
O
OpenCV
c
c++20
C
CMake
l
libdatachannel
F
FFmpeg
l
llhttp

Links & Resources

Website

Included in

C/C++70.6k
Auto-fetched 1 day ago

Related Projects

SDLSDL

Simple DirectMedia Layer

Stars15,479
Forks2,722
Last commit1 day ago
SFMLSFML

Simple and Fast Multimedia Library

Stars11,819
Forks1,886
Last commit4 days ago
QtAvQtAv

A cross-platform multimedia framework based on Qt and FFmpeg. 基于Qt和FFmpeg的跨平台高性能音视频播放框架. Recommand to use new sdk https://github.com/wang-bin/mdk-sdk

Stars4,238
Forks1,535
Last commit8 months ago
TagLibTagLib

TagLib Audio Meta-Data Library

Stars1,397
Forks384
Last commit2 days 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