«Или ноль»: Discord готовится уйти с Electron. На Rust?

Обычная ветка обсуждения в X про версию Discord на iPhone Duo может означать переход Discord на Rust.
3 ноября блогер Тео Браун (t3.gg) написал1, что о качестве инженерной культуры компании можно судить по тому, как быстро она обновила приложения под iPhone Duo. Следующим постом он добавил2, что ожидает закрытия Discord в течение двух лет.
Сооснователь и технический директор Discord Станислав Вишневский ответил3, что поддержка Duo выйдет на этой неделе, а команда занята «гораздо более крупным апдейтом». С подмигивающим смайликом. Что это за апдейт, он не уточнил.
Сейчас десктопный Discord работает на Electron, то есть внутри приложения живёт собственный браузер Chromium и Node.js. Поэтому один из пользователей пошутил, что после большого обновления Discord будет запускать два экземпляра Chromium вместо одного.
Вишневский ответил4 двумя словами: «Или 0». Если понимать это буквально, речь о клиенте без браузерного движка вообще.
Под тем же постом пользовательница написала, что не верит в версию на Rust и GPUI (фреймворк, на котором сделан редактор Zed), и что приложение всё равно будет «есть кучу оперативки». Вишневский не стал спорить. Он ответил5 гифкой

Подтверждения нет ни для Rust, ни для GPUI.
Другой пользователь попросил «не использовать Tauri, только натив». Сотрудник Discord ответил коротко6: «мы не стали бы использовать Tauri». Деталь важная. Tauri написан на Rust, но интерфейс там всё равно рисует системный веб-движок. Отказ от него хорошо сочетается с «Или 0».

Rust в Discord: В инженерном блоге7 компания рассказывала, что использует его в пайплайне кодирования видео для Go Live и на серверах. Сервис Read States, который отслеживает прочитанные сообщения, перенесли с Go на Rust, потому что сборщик мусора в Go вызывал скачки задержек.
К тому же Discord давно пытается ускорить клиент. В марте поддержка сообщила8, что время запуска сократили на 11,8%. Но такие оптимизации не убирают сам Chromium.
Разница в масштабе. Серверный сервис можно переписать небольшой командой за несколько недель. Клиент с голосом, стримами, оверлеем и магазином намного больше.
Неофициальные нативные клиенты на Rust существуют давно. Serein9 построен на egui и wgpu. Авторы Litecord10 заявляют около 32 МБ оперативной памяти. CordFast11 обещает около 100 МБ без браузерного движка.
Цифры это заявления авторов, а не независимые тесты. И Discord не поддерживает сторонние клиенты, так что аккаунт рискует блокировкой.
Официального анонса нет, как и поста в блоге, сроков, беты и списка платформ. Слово «Rust» ни Вишневский, ни его коллеги не произносили.
Да и сам Вишневский к Rust неравнодушен. В 2018 году, когда запускался магазин Discord, он написал, что система загрузки и патчей, а также Game SDK написаны на Rust. И добавил, что без него ничего бы не вышло, потому что людей, готовых писать на C++, просто не хватало.
Источники
Интересно обсудить?


Volven Skadadottir
Редактор verärgert
