Discord решил полностью перевести десктопный клиент на Rust и отказаться от Electron. Этот кроссплатформенный фреймворк позволяет создавать приложения на веб-технологиях, но часто критикуется за высокое потребление системных ресурсов. Rust выбран как язык с упором на производительность и безопасность работы с памятью. В случае Discord замена затрагивает не отдельный компонент, а весь десктопный клиент.
О планах рассказал технический директор Станислав Вишневский. Компания использует Rust с 2018 года: на нём уже написана значительная часть инфраструктуры, голосовые технологии и некоторые части существующего клиента. По словам CTO, перевод клиента целиком был для команды давней конечной целью.
Изменения затронут и мобильную разработку. Вишневский сообщил об отказе не только от Electron, но и от React Native. Мобильные приложения сохранят нативный пользовательский интерфейс, а общий код приложения будет написан на Rust и использоваться совместно с десктопной версией. Таким образом, речь не о переносе одинакового веб-интерфейса на все платформы: UI на мобильных устройствах останется платформенным, а Rust станет общей основой логики.
В качестве демонстрации технический директор опубликовал изображение Windows-клиента, использующего 290 МБ оперативной памяти. The Verge отмечает, что нынешнее Windows-приложение способно занимать 1 ГБ и больше даже у пользователя, состоящего всего в нескольких серверах. Это сопоставление показывает потенциальную экономию, но не является полноценным независимым тестом: опубликован один снимок конкретного клиента, а методика измерения и состав нагрузки не раскрыты.
Сроки полного перехода пока неизвестны. Discord лишь надеется в скором времени начать тестирование нового приложения с пользователями. Поэтому объявление не означает немедленной замены текущей версии для всей аудитории. Сначала компании предстоит проверить клиент в пользовательских тестах, а окончательную дату выпуска Вишневский не назвал.