Денис Тарелкин 06 ноября 2026

Discord уходит с Electron на Rust. Тестовая сборка заняла 290 МБ с двумя аккаунтами

Discord переписывает клиенты на Rust и GPUI. Ранняя Windows-сборка занимала около 290 МБ памяти с двумя аккаунтами; дату публичного выпуска пока не объявили.
Discord уходит с Electron на Rust. Тестовая сборка заняла 290 МБ с двумя аккаунтами

Discord переписывает клиентские приложения на Rust. На компьютерах компания откажется от Electron, на смартфонах — от React Native. О переходе рассказал сооснователь и технический директор Discord Станислав Вишневский.

В опубликованном им диспетчере задач Windows ранняя сборка Discord Phoenix занимала около 290 МБ оперативной памяти. По словам Вишневского, в ней одновременно работали два аккаунта. Дату публичного выпуска компания пока не объявила.

Интерфейс будет рисовать фреймворк редактора Zed

Для настольного приложения Discord выбрал GPUI — фреймворк на Rust, который команда Zed использует в своём редакторе кода. Он отрисовывает интерфейс с ускорением на видеокарте.

Текущий клиент построен на Electron. Этот фреймворк позволяет создавать настольные приложения средствами веб-разработки: HTML, CSS и JavaScript. Он использует Chromium и разделяет работу между главным процессом и процессами отрисовки. В новой архитектуре основной интерфейс Discord перейдёт на GPUI.

Изменения затронут несколько платформ:

  • на компьютерах Electron заменят нативным клиентом с GPUI;
  • на iOS и Android сохранят нативный интерфейс, а общий код приложения будут писать на Rust;
  • в браузере интерфейс останется на HTML, а логику приложения планируют выполнять через WebAssembly.

Для встроенного веб-контента, включая активности, в настольном приложении останется системный WebView. Это отдельный компонент для показа веб-страниц внутри программы.

Разработчики показали память и запуск ранней сборки

Первое заявление о переходе вышло 4 ноября. На следующий день Вишневский опубликовал демонстрацию запуска нового клиента на двух старых ноутбуках и отметил более быстрый отклик интерфейса.

Показатель 290 МБ относится к конкретной Windows-сборке с двумя активными аккаунтами. Компания ещё не опубликовала результаты большого сравнительного теста с одинаковыми серверами, звонками и другими нагрузками для старого и нового клиентов.

Для Linux также готовят нативную версию. В обсуждении на Reddit представитель Discord подтвердил поддержку платформы. Команда планирует перейти к тестированию с пользователями, но точных сроков пока нет.

Discord уже убирал задержки с помощью Rust

Переход начался задолго до нынешней переработки клиента. Вишневский сообщил, что компания использует Rust с 2018 года: язык уже применяется в инфраструктуре, голосовых технологиях и отдельных частях приложения.

4 февраля 2020 года Discord опубликовал разбор переноса сервиса Read States с Go на Rust. Этот сервис отслеживает прочитанные каналы, сообщения и упоминания. На него поступали сотни тысяч обновлений кеша в секунду.

У реализации на Go примерно раз в две минуты возникали всплески задержек, связанные со сборкой мусора. Уменьшение кеша сокращало паузы, но увеличивало число обращений к базе данных. После переноса на Rust команда сообщила об устранении этих всплесков и улучшении показателей процессора и памяти.

Сам перенос завершили в мае 2019 года. После внедрения разработчики увеличили вместимость кеша до 8 млн записей о прочитанных сообщениях. Теперь компания распространяет опыт работы с Rust на клиентские приложения целиком.

Источники

Комментарии