webrtc-rs/webrtc
Async-friendly WebRTC implementation in Rust
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tuần
#10 Repository Của Tuần
#1 Repository Của Tuần
🚀 WebRTC.rs: WebRTC bất đồng bộ trong Rust, độc lập runtime
WebRTC.rs là phiên bản WebRTC hỗ trợ bất đồng bộ trong Rust, lấy cảm hứng từ Pion và đang chuyển đổi sang kiến trúc Sans-I/O để hỗ trợ nhiều runtime khác nhau.
WebRTC.rs là một thư viện WebRTC được viết bằng Rust, hỗ trợ lập trình bất đồng bộ. Dự án ban đầu dựa trên Pion và đang phát triển lại thành kiến trúc sạch, dễ sử dụng, không phụ thuộc vào runtime cụ thể. Hiện tại, dự án đang trong quá trình phát triển phiên bản v0.20.0 với kiến trúc mới dựa trên nền tảng rtc — lõi giao thức không I/O — và lớp trừu tượng runtime để hỗ trợ Tokio, async-std, smol và embassy.
✨ Điểm nổi bật
- Kiến trúc Sans-I/O: Tách logic giao thức hoàn toàn khỏi I/O, dựa trên crate
rtcvới hơn 95% tuân thủ API W3C. - Hỗ trợ nhiều runtime: Tương thích với Tokio, async-std, smol, embassy nhờ lớp trừu tượng runtime phong cách Quinn.
- Xử lý sự kiện sạch: Sử dụng trait-based event handlers với
async fn in trait, tránh callbackArcvàBox::new. - Quản lý trạng thái tập trung: Sử dụng
&mut selfđể quản lý trạng thái, giảm thiểu sao chépArc. - Kiểm thử xác định: Cho phép kiểm thử logic mà không cần I/O mạng thực.
- Tính năng phát triển v0.20.0+: Tích hợp cờ tính năng
runtime-tokio(mặc định),runtime-async-std,runtime-smol,runtime-embassy.
💡 Vì sao đáng chú ý
WebRTC.rs khác biệt so với các thư viện WebRTC khác bằng cách tách biệt hoàn toàn logic giao thức (thông qua crate rtc) ra khỏi lớp giao diện bất đồng bộ. Điều này giúp kiểm thử trở nên chính xác và dự đoán được, đồng thời cho phép sử dụng bất kỳ runtime nào. Với phiên bản v0.20.0+ sắp tới, dự án giải quyết các vấn đề như callback phức tạp, rò rỉ tài nguyên và kết nối chặt chẽ với Tokio. Phù hợp cho các ứng dụng thời gian thực, truyền video/audio, hoặc xây dựng hệ thống giao tiếp P2P trong môi trường Rust.
#WebRTC #Rust #Async #RealTimeCommunication #OpenSource #TiniX
Similar Projects
Discover other similar projects and AI models.
all-MiniLM-L6-v2 This is a sentence-transformers(https://www.SBERT.net) model: It maps sentences & paragraphs to a 384 dimensional dense vector space and can be used for tasks like clustering or semantic search. Usage (Sentence-Transformers) Using t...
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
A lightweight, cross-platform remote desktop software with support for Web Client access | 一款支持 Web 客户端访问的轻量级跨平台远程桌面软件。
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.