awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
webrtc-rs avatar

webrtc-rs/webrtc

0
View on GitHub↗
webrtc.rs
↗

Webrtc

This library provides a complete implementation of the WebRTC protocol suite in Rust, enabling peer-to-peer audio, video, and data channels with an asynchronous, Rust-native stack. Its architecture separates protocol logic from I/O, giving developers control over threading and scheduling while the library manages the protocol state. The stack is built to be modular, supporting data channel multiplexing over a single SCTP association, an event-driven callback interface for responding to connection changes, and an interceptor pipeline for processing media packets without altering core protocol code.

What distinguishes this library is its emphasis on extensibility and privacy-aware design. Media streams can carry multiple simulcast or SVC encodings per track, allowing receivers to select quality based on network conditions, and the interceptor framework lets applications inspect, modify, or redirect media packets mid-stream. During peer connection establishment, the library uses mDNS to replace local IP addresses with .local hostnames, preventing address leakage. Connection statistics such as packet loss, bandwidth, and round-trip time are collected in real time for monitoring and feedback, while RTCP signals inform adaptive bitrate adjustments.

The library manages the full WebRTC protocol stack, from ICE-based peer connection establishment to server-side media relay via a selective forwarding unit for multi-participant calls. Its event handling uses structured traits rather than raw callbacks, and non-blocking I/O supports many simultaneous connections. To simplify testing, the architectural decoupling of protocol logic from transport lets developers run deterministic tests using virtual time, independent of real network I/O.

Features

  • ICE-Based Peer Connection Managers - Establishes peer-to-peer connections using ICE with firewall traversal, signaling control, and threading management.
  • WebRTC Stack Construction - Builds a complete real-time communication stack from low-level protocols to media relay infrastructure.
  • Simulcast and SVC Encodings - Sends multiple simulcast or SVC encodings per track so receivers can select or switch quality based on network conditions.
  • Real-Time Media Streaming - Sends and receives audio and video tracks with support for multiple encodings and adaptive bitrate adjustments.

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI
4,947 stars·462 forks·Rust·apache-2.0·17 vues
  • Peer-to-Peer Streaming - Orchestrates peer-to-peer audio, video, and data exchange by managing the protocol stack and media transport.
  • Custom Data Channels - Exchanges arbitrary binary or text messages between peers over reliable or unreliable data channels in real time.
  • WebRTC Protocol Stack Management - Manages the full protocol stack for peer-to-peer media and data transport over real-time connections.
  • Data Channel Establishment - Implements the SCTP-based data channel establishment protocol for peer-to-peer communication.
  • Peer-to-Peer Media Libraries - Enables direct peer-to-peer audio, video, and data channels between browsers and native applications.
  • Real-Time Communication APIs - Provides standard WebRTC APIs that let applications interface with real-time communication via familiar patterns.
  • SCTP - Provides SCTP-based multiplexing of multiple data channels over a single association for WebRTC peer connections.
  • Peer Connectivity - Provides ICE-based peer connectivity for traversing firewalls and establishing direct links.
  • Protocol-Transport Decoupling Layers - Decouples WebRTC protocol logic from transport I/O, giving callers full control over threading and scheduling.
  • Event-Driven Callbacks - Exposes structured typed callbacks for responding to connection state changes without coupling to internal state machines.
  • Protocol I/O Decoupling - Runs all protocol logic internally while leaving I/O to the caller, enabling full control over threading and scheduling.
  • Interceptor Pipelines - Passes media packets through a customizable interceptor pipeline for inspection, modification, or redirection.
  • WebRTC Configurations - Implements the full WebRTC protocol suite for peer-to-peer real-time communication and data exchange.
  • Async Protocol Stacks - Provides an asynchronous WebRTC stack that separates protocol logic from I/O for flexible threading and testability.
  • Rust WebRTC Implementations - Provides a complete Rust-native WebRTC implementation with async I/O and protocol/transport separation.
  • RTCP - Adjusts streaming quality and recovers lost data using RTCP feedback signals from the network.
  • WebRTC Connection Statistics Monitors - Tracks real-time metrics like data volume and round-trip time during active WebRTC connections.
  • Customizable Media Packet Interceptors - Provides a customizable interceptor framework for inspecting, modifying, or redirecting media packets mid-stream.
  • Privacy-Preserving mDNS Resolvers - Uses mDNS to replace local IPs with .local hostnames during peer discovery to preserve device address privacy.
  • mDNS Privacy Resolvers - Uses mDNS to replace local IPs with .local hostnames during ICE candidate exchange to prevent address leakage.
  • Media Relays - Relays media streams among multiple participants using a server-side selective forwarding unit for group calls.
  • mDNS Private - Uses mDNS to resolve IP addresses without exposing them, preserving privacy during peer discovery.
  • Transport-Agnostic Protocol Testing - Separates protocol logic from transport operations, enabling independent testing on different transports.
  • Stream Multiplexers - Multiplexes multiple logical data streams over a single SCTP association for efficient data channel communication.
  • mDNS IP Address Privacy - Replaces local IP addresses with .local hostnames via mDNS to preserve privacy during peer connections.
  • Non-blocking I/O - Uses non-blocking I/O to manage many simultaneous WebRTC connections without blocking threads.
  • Per-Connection Traffic Metrics - Collects real-time per-connection metrics on packet loss, bandwidth, and round-trip time for monitoring and feedback.
  • Virtual Time Testing - Tests protocol components deterministically without real network I/O by using controlled virtual time.
  • Trait-Based - Provides trait-based event handling that replaces raw callbacks with structured interfaces for better testability.
  • Historique des stars

    Graphique de l'historique des stars pour webrtc-rs/webrtcGraphique de l'historique des stars pour webrtc-rs/webrtc

    Alternatives open source à Webrtc

    Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Webrtc.
    • meetecho/janus-gatewayAvatar de meetecho

      meetecho/janus-gateway

      9,117Voir sur GitHub↗

      Janus is a WebRTC media gateway that routes real-time audio, video, and data between web browsers and server-side application logic. It functions as a central media relay that manages session negotiation and encryption for multiple browser endpoints. The project utilizes a modular plugin architecture that decouples the core server from specific media logic, allowing developers to implement custom modules for media processing, event handling, and transport protocols. This design enables the server to act as a protocol translation bridge, converting WebRTC streams into legacy formats such as SI

      C
      Voir sur GitHub↗9,117
    • webrtc/samplesAvatar de webrtc

      webrtc/samples

      14,624Voir sur GitHub↗

      This repository provides a collection of reference implementations and practical demonstrations for using WebRTC to establish real-time audio, video, and data communication. It contains code samples for negotiating peer-to-peer connections, managing media streams, and utilizing low-latency data channels. The project demonstrates the capture of audio and video from hardware devices, as well as the redirection of canvas element content into media streams. It includes examples of transferring arbitrary text and binary data between peers and managing the negotiation of direct connections. The sa

      JavaScript
      Voir sur GitHub↗14,624
    • simplewebrtc/simplewebrtcAvatar de simplewebrtc

      simplewebrtc/SimpleWebRTC

      4,689Voir sur GitHub↗

      SimpleWebRTC is a communication framework and real-time media streaming library designed to establish peer-to-peer audio, video, and data streams between web clients. It provides a conference room manager to organize multiple participants into virtual rooms for group interaction. The framework includes a dedicated system for peer-to-peer file transfers and low-latency data messaging. It also features a network traversal configuration tool for managing the servers required to maintain connectivity across firewalls and restrictive network environments. The project covers broad capability areas

      JavaScript
      Voir sur GitHub↗4,689
    • feross/simple-peerAvatar de feross

      feross/simple-peer

      7,797Voir sur GitHub↗

      simple-peer is a JavaScript library that provides a wrapper for WebRTC to simplify the establishment of peer-to-peer networking in the browser. It serves as a tool for creating direct device-to-device connections for the transmission of binary data and real-time media streaming. The library manages the exchange of strings and binary buffers through a data channel implementation and provides tools for sharing real-time audio and video tracks between peers. It covers the full lifecycle of peer connectivity, including signaling coordination, session description negotiation, and the gathering of

      JavaScript
      Voir sur GitHub↗7,797
    Voir les 30 alternatives à Webrtc→

    Questions fréquentes

    Que fait webrtc-rs/webrtc ?

    This library provides a complete implementation of the WebRTC protocol suite in Rust, enabling peer-to-peer audio, video, and data channels with an asynchronous, Rust-native stack. Its architecture separates protocol logic from I/O, giving developers control over threading and scheduling while the library manages the protocol state. The stack is built to be modular, supporting data channel multiplexing over a single SCTP association, an event-driven callback interface for…

    Quelles sont les fonctionnalités principales de webrtc-rs/webrtc ?

    Les fonctionnalités principales de webrtc-rs/webrtc sont : ICE-Based Peer Connection Managers, WebRTC Stack Construction, Simulcast and SVC Encodings, Real-Time Media Streaming, Peer-to-Peer Streaming, Custom Data Channels, WebRTC Protocol Stack Management, Data Channel Establishment.

    Quelles sont les alternatives open-source à webrtc-rs/webrtc ?

    Les alternatives open-source à webrtc-rs/webrtc incluent : meetecho/janus-gateway — Janus is a WebRTC media gateway that routes real-time audio, video, and data between web browsers and server-side… simplewebrtc/simplewebrtc — SimpleWebRTC is a communication framework and real-time media streaming library designed to establish peer-to-peer… webrtc/samples — This repository provides a collection of reference implementations and practical demonstrations for using WebRTC to… feross/simple-peer — simple-peer is a JavaScript library that provides a wrapper for WebRTC to simplify the establishment of peer-to-peer… luruke/browser-2020 — This project is a comprehensive reference guide and directory of web browser capabilities. It serves as a technical… react-native-webrtc/react-native-webrtc — react-native-webrtc is a mobile framework wrapper and peer-to-peer communication library used to integrate real-time…