
Заметки о том, как я писал SFU на Rust (1 часть)
K0R0VA 4 минуты назад Заметки о том, как я писал SFU на Rust (1 часть) Средний 19 мин 78 Rust * Браузеры Видеоконференцсвязь Программирование * Работа с видео * Туториал Из песочницы Я работаю с Rust уже несколько лет....
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: K0R0VA 4 минуты назад Заметки о том, как я писал SFU на Rust (1 часть) Средний 19 мин 78 Rust * Браузеры Видеоконференцсвязь Программирование * Работа с видео * Туториал Из песочницы Я работаю с Rust уже несколько лет. В основном - бэкенд, микросервисы, много асинхронного кода и многопототочных задач. А ещё я давно хотел разобраться в WebRTC.
Не на уровне "вот туториал, скопируй и запусти", а чтобы реально понимать, что происходит с пакетами, как они передаются, как маршрутизируются. В итоге я решил написать свой SFU. Не чтобы конкурировать с LiveKit или Jitsi.
Технические детали
Просто чтобы посмотреть, как оно работает изнутри. И написать его на Rust - потому что это мой основной инструмент, и мне было интересно, насколько он подходит для такого рода задач. Эта статья - не гайд "как сделать SFU за 5 минут".
Это скорее дневник разработки. В конце я буду рад, если кто-то укажет на ошибки или предложит лучшие решения. Это и есть главная цель - разобраться глубже.
С чего всё началосьПару месяцев назад я наткнулся на статью о том, как устроен WebRTC в браузере. В ней было много про SDP, ICE кандидаты, DTLS рукопожатие. Я прочитал и понял, что половину терминов не знаю.
Отраслевые последствия
Тогда я решил: единственный способ понять - попробовать собрать что-то рабочее самому. Я начал с простого: взял библиотеку webrtc-rs, написал эхо-сервер, который принимал видео и отправлял его обратно. Потом я захотел добавить второго пользователя и столкнулся с тем что мне необходимо понимание всех тех терминов, которых я не понял из той статьи.
Поэтому придется все таки начать с базы, а именно теории. Что такое SFU и зачем он нуженWebRTC изначально задумывался как технология для прямого соединения между браузерами. Один участник отправляет поток напрямую другому.
Всё хорошо, пока участников двое. Как только их становится трое, каждый должен отправлять видео каждому. Это уже три соединения на участника.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.




