Skip to content

real-time communication library built in Rust, leveraging QUIC transport with Media over QUIC (MoQ) protocol

Notifications You must be signed in to change notification settings

ShankarKakumani/quicrtc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

QuicRTC

πŸš€ Core Protocols Complete - Media Integration In Progress πŸš€

A next-generation real-time communication library built in Rust, leveraging QUIC transport with Media over QUIC (MoQ) protocol for ultra-low latency media streaming.

Current Status (January 2025)

85% Complete - Core networking and protocols are production-ready and tested. Media integration is actively being completed.

βœ… What's Working Now

  • QUIC Transport: Production-grade Quinn-based implementation with real connection attempts
  • MoQ Protocol: Complete IETF specification implementation (verified with 1033-byte object encoding)
  • Audio Pipeline: Full Opus encode/decode/render (960 samples β†’ 135-210 bytes compression)
  • Cross-platform Audio: CPAL-based audio rendering working across platforms
  • Transport Fallback: QUIC β†’ WebSocket β†’ WebRTC chain (WebRTC is placeholder)
  • macOS Video: Camera permission system + device enumeration (synthetic frames for now)

πŸ”„ Currently Implementing

  • Real Camera Capture: AVFoundation delegate for actual camera data (vs synthetic frames)
  • Video Integration: H.264 encoding β†’ MoQ transport β†’ decoding pipeline
  • Cross-platform Video: Windows DirectShow, Linux V4L2, Web MediaDevices

🎯 Ready For

  • Server Applications: MoQ relay/routing with QUIC transport
  • Audio Applications: Complete Opus-based audio streaming
  • Protocol Development: Full IETF MoQ implementation testing
  • macOS Desktop: Camera apps with permission handling (synthetic video)

What We're Building

QuicRTC is revolutionizing real-time media communication by combining modern networking protocols with high-performance media processing. Our goal is to create a unified, cross-platform solution that delivers superior performance, reliability, and developer experience.

Core Vision

  • Ultra-Low Latency: Sub-100ms glass-to-glass latency for real-time applications
  • Modern Protocols: QUIC transport with Media over QUIC (MoQ) for optimal performance
  • Cross-Platform: Native support for macOS, Windows, and Linux
  • Developer-First: Clean APIs with comprehensive documentation and examples

Benefits for Users

πŸš€ Performance Advantages

  • Reduced Latency: QUIC's 0-RTT connection establishment and built-in multiplexing
  • Better Network Utilization: Intelligent congestion control and loss recovery
  • Hardware Acceleration: Native codec support with GPU acceleration where available
  • Adaptive Quality: Dynamic bitrate and resolution adjustment based on network conditions

πŸ›‘οΈ Reliability & Robustness

  • Connection Resilience: Automatic connection migration and recovery
  • Intelligent Fallbacks: Graceful degradation through multiple transport layers
  • Error Recovery: Advanced packet loss detection and retransmission strategies
  • Network Awareness: Adaptive behavior based on connection quality

πŸ”§ Developer Experience

  • Memory Safety: Built in Rust for zero-cost abstractions and memory safety
  • Simple APIs: Intuitive interfaces for common real-time communication tasks
  • Comprehensive Examples: Ready-to-use code for various use cases
  • Cross-Platform: Single codebase targeting multiple operating systems

🌐 Modern Standards

  • IETF Compliance: Implementation follows latest QUIC and MoQ specifications
  • Future-Proof: Built on emerging standards designed for next-decade applications
  • Extensible: Modular architecture supporting custom protocols and codecs

Implementation Status

πŸ—οΈ Core Transport Layer βœ… COMPLETE

  • QUIC Transport Implementation (Quinn-based, tested)
  • Connection Management & Pooling
  • Stream Multiplexing & Flow Control
  • Transport Fallback Chain (QUIC β†’ WebSocket β†’ WebRTC*)
  • Connection Error Handling & Timeouts
  • Network Path Validation

πŸ“‘ Media over QUIC (MoQ) βœ… COMPLETE

  • MoQ Wire Format Implementation (IETF spec-compliant)
  • Variable-length Integer Encoding/Decoding
  • Control Message Processing (CLIENT_SETUP, ANNOUNCE, SUBSCRIBE)
  • Object-Based Media Delivery (stream & datagram encoding)
  • Track Namespace Management
  • Stream Management & Prioritization

πŸŽ₯ Media Processing 🟑 85% COMPLETE

  • Audio Capture & Rendering (CPAL-based)
  • Opus Audio Codec (encode/decode tested)
  • Video Capture Framework (AVFoundation on macOS)
  • Camera Permission System (macOS)
  • Device Enumeration & Management
  • H.264 Codec Architecture
  • [πŸ”„] Real Camera Frames (currently synthetic)
  • [πŸ”„] Hardware-Accelerated Encoding/Decoding
  • Advanced Video Processing (Filters, Effects)
  • Audio Processing (Echo Cancellation, Noise Reduction)

πŸ”„ Fallback & Compatibility 🟑 60% COMPLETE

  • WebSocket Transport Fallback (connection attempts working)
  • [πŸ”„] WebRTC Data Channel Fallback (architectural placeholder)
  • Automatic Transport Selection & Error Handling
  • HTTP/3 Transport Option
  • Legacy Protocol Bridges

🌍 Platform Support 🟑 40% COMPLETE

  • macOS: AVFoundation camera, permission system, audio rendering
  • [πŸ”„] Windows: DirectShow framework (needs implementation)
  • [πŸ”„] Linux: V4L2 framework (needs implementation)
  • [πŸ”„] WebAssembly: MediaDevices framework (needs implementation)
  • Mobile (iOS, Android)
  • Embedded Systems

πŸ› οΈ Developer Tools βœ… COMPLETE

  • Comprehensive Examples (15+ working demos)
  • Integration Tests (transport, codecs, wire format)
  • Cross-platform Build System
  • Documentation & API Examples

πŸŽ›οΈ Advanced Features ⏳ FUTURE

  • Screen Sharing & Remote Desktop
  • Multi-party Conference Support
  • Recording & Playback
  • Live Streaming Integration
  • Bandwidth Adaptation Algorithms
  • Quality-of-Service Controls
  • Multi-track Media Support
  • Performance Benchmarking Suite
  • Network Simulation Tools
  • Debugging & Diagnostics
  • Monitoring & Analytics
  • End-to-End Encryption

πŸ” Security & Privacy ⏳ FUTURE

  • End-to-End Encryption
  • Identity & Authentication
  • Certificate Management
  • Privacy Controls
  • Secure Media Relay

*WebRTC fallback is architectural placeholder - functional framework exists

Architecture

QuicRTC is built with a modular architecture consisting of several specialized crates:

  • quicrtc-core: Core QUIC transport and MoQ protocol implementation
  • quicrtc-media: Media capture, processing, and rendering
  • quicrtc-signaling: Connection discovery and signaling protocols
  • quicrtc-diagnostics: Performance monitoring and debugging tools
  • quicrtc: High-level API and integration layer

Technology Stack

  • Language: Rust (for performance, safety, and cross-platform support)
  • QUIC Implementation: Quinn 0.11+ (mature, high-performance QUIC library)
  • Media Framework: Platform-native APIs (AVFoundation, DirectShow, V4L2)
  • Async Runtime: Tokio (for high-performance async I/O)
  • Audio: CPAL (cross-platform audio library)
  • Codecs: Opus (libopus), H.264 (OpenH264)
  • Serialization: Custom binary protocols for optimal performance

Getting Started (Development)

# Clone and build
git clone <repository-url>
cd quicrtc
cargo build

# Test core functionality
cargo run --example basic_usage          # Audio pipeline
cargo run --example transport_demo       # QUIC transport
cargo run --example moq_wire_format_demo # MoQ protocol
cargo run --example video_capture_demo   # Video capture (macOS)

# Check all examples
ls examples/

Contributing

We welcome contributions! The core protocols are complete and tested. Current focus areas:

  1. Real Camera Implementation (6-8 hours) - AVFoundation delegate for actual frames
  2. Cross-platform Video (12-16 hours per platform) - Windows/Linux/Web backends
  3. End-to-End Integration (4-6 hours) - Camera β†’ MoQ β†’ Network pipeline

See IMPLEMENTATION_STATUS_REPORT.md for detailed technical status.

License

[License details to be determined]


Status: Core networking innovation complete βœ… | Media integration in progress πŸ”„ | Ready for audio applications and protocol development πŸš€

About

real-time communication library built in Rust, leveraging QUIC transport with Media over QUIC (MoQ) protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages