My project, RTC Bricks, aims to unleash WebRTC creativity using web components. It has a collection of more than 70 web components in vanilla JavaScript, and related numerous example applications, and a comprehensive live and hands-on tutorial. The project demonstrates several applications in communication, collaboration, media processing and much more in the endpoint without depending on any client-side framework, and without getting locked to any single service.
These application use cases are demonstrated in over 150 sample applications that cover a wide range of scenarios including audio/video call, multiparty conference, text chat, content share, device selection, click-to-call, one-to-many broadcast, shared tools such as whiteboard, notepad or rich text editor; video conference layout such as dynamically adjusting boxes, 3D view; video and image processing such as virtual background, synthetic video or water marking; or audio processing such as spatial audio, speech recognition or text-to-speech.
The basic foundational ideas of this project are as follow:
- Separate any app logic from any user data.
- Keep the app logic in the endpoint, if possible.
- Use vanilla JavaScript, and avoid any client side framework.
- Create flexible and extensible interfaces in HTML5 web components.
The project also includes lightweight servers for signaling negotiation and real-time database, and allows connection to existing popular media servers and hosted services. A separate native app included in the project allows web developers to create hybrid apps utilizing native non-web features such as raw network sockets, or frameless customizable windows.
These flexible and extensible web components keep the app logic separate from any user data, promote innovation in the endpoint, are written in vanilla JavaScript, not tied to any client side framework, and are detailed in a comprehensive developer guide.
The project is available at https://github.com/theintencity/rtcbricks, and a live hands-on tutorial (via githack) as well as its printed PDF are available below. If you are interested in trying out, contributing or sponsoring the project, please visit the project page and/or get in touch with me!


No comments:
Post a Comment