«Или ноль»: 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 гифкой

Ответ Станислава
https://x.com/svishnevskiy/status/2117758200124731897

Подтверждения нет ни для Rust, ни для GPUI.

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

Ответ от @advaithj1
https://x.com/advaithj1/status/2117879294106251618

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++, просто не хватало.

Источники

  1. X, @theo ↩

  2. X, @theo ↩

  3. X, @svishnevskiy ↩

  4. X, @svishnevskiy ↩

  5. X, @svishnevskiy ↩

  6. X, @advaithj1 ↩

  7. Discord Blog ↩

  8. X, @discord_support ↩

  9. GitHub, Serein ↩

  10. GitHub, Litecord ↩

  11. GitHub, CordFast ↩

Интересно обсудить?

Volven Skadadottir

Редактор verärgert