ろぼいんブログ

Discordが脱Electronへ CTOがGPUIへの移行を発表

約4分で読めます
スマートフォンの画面にDiscordのロゴが表示されている写真

DiscordのCTO兼共同創業者のStanislav Vishnevskiy氏は自身のXアカウントで、DiscordのデスクトップクライアントとモバイルアプリをそれぞれElectronとReact NativeからGPUIに移行させる方針を示しました。

目次

Discordが脱ElectronでGPUIに移行へ

日本時間2026年11月3日、DiscordアプリのiPhone Duoへの最適化が遅いという趣旨の投稿に対して、DiscordのCTO兼共同創業者のStanislav Vishnevskiy氏が「心配しないで、今週のアップデートに含まれていますよ。ただ、もっと大きなアップデートの準備で忙しいだけなんです ;)」と返信しました。

広告

Vishnevskiy氏の投稿に対する「ついに、Discordは1つの代わりに2つのChromiumインスタンスを開始するようになります」と冗談めかした返信に対して、同氏は「または0個」と返信し、DiscordがElectronを廃止する可能性を示唆しました。

11月5日にVishnevskiy氏は、Electronを廃止してDiscordのクライアントをRustに移行させると投稿しました。Vishnevskiy氏の11月3日の投稿に対して、一部ではDiscordがTauriに移行するのではないかという意見もありましたが、同氏はGPUIに移行すると述べています。

2018年以来、Discordはさまざまな箇所でRustを採用しており、インフラ、音声技術、現在のクライアントの一部をすでにRustで構築しています。同氏によれば、究極の目標はクライアント全体をRustに移行させることで、それによってデスクトップクライアントのElectronとモバイルアプリのReact Nativeを廃止するとのことです。

Discordの新しいモバイルアプリはネイティブUIを維持しつつ、Rust経由でデスクトップクライアントとアプリのコードを共有します。Vishnevskiy氏は、Rustに移植されたDiscordの新しいクライアントは、現在のクライアントと見た目も動作もまったく同じになると述べています。Web版のDiscordにはHTMLレンダラーを用意し、ロジックはJavaScriptの代わりにWasmを使うとのことです。

ElectronはWebサイトの構築に用いられるのと同じ技術を使ってデスクトップアプリを開発できる仕組みです。UIの構築が容易で、複数のプラットフォームでプログラムの一部を共通化できることから、DiscordをはじめとしてVisual Studio CodeやSlack、ChatGPT Appなどで利用されています。

広告

開発者目線でElectronは便利ですが、Chromium(Google Chromeで使われているブラウザーエンジン)を同梱することからソフトのサイズが大きくなりやすく、メモリーの消費も大きくなりやすいという課題があります。

これに対して、GPUIはコードエディター「Zed」のために開発された技術で、Rustを使ってUIを描画します。名前のとおりGPUを活用してUIを描画するのが特徴で、高パフォーマンスなレンダリングを実現します。

Vishnevskiy氏は、DiscordのクライアントをGPUIで開発するにあたり、GPUIに独自のパッチを当てているとの趣旨のポストを投稿しています。コミュニティに関係がある場合はアップストリームへの貢献を検討する意思を示しています。これに対してZedの公式Xアカウントは「happy to chat」と返信し、将来的な協力の可能性を示唆しました。

筆者の分析

Electron(旧Atom Shell)はもともと、2013年にコードエディター「Atom」の開発のために生み出されました。複数のプラットフォームに対応したリッチなUIを容易に構築できることから、Visual Studio CodeやSlack、Discordをはじめとしてさまざまなアプリで採用されるようになりました。

しかし、前述のようにElectronはChromiumを同梱するためバイナリーサイズが肥大化しやすく、多くのメモリーを消費する傾向にあります。

広告

Electronは現在でもさまざまなソフトで活用されていますが、開発のきっかけとなったAtomは2022年に開発が終了しました。

Atomの開発チームが2019年から開発を開始して2024年に一般公開したのがGPUIです。GPUIは筆者が愛用しているコードエディター「Zed」のために開発されたフレームワークです。GPUIはRustで構築されており、GPUを活用した高速なレンダリングが特徴です。

GPUIの開発はZedと密接に結びついているため、Zed以外のアプリのサポートがあと回しになりやすいという問題があります。これに対してDiscordは独自のパッチで対応するようです。

DiscordのクライアントがGPUIに移行することで、メモリーの消費が少なくなると期待できます。

GPUI版のDiscordはまだ正式にリリースされていないものの、筆者はGPUI版のDiscordによって一部の環境でゲームのパフォーマンスが低下する可能性があると考えています。

広告

GPUIはレンダリングにGPUを活用することが前提となっており、記事執筆時点でCPUでのレンダリングに対応していません。iGPUのある環境ではそれほど問題になりませんが、dGPUのみ搭載している環境では、GPUリソースをDiscordとゲームが奪い合ってしまう可能性があります。実際、dGPUのみ搭載している筆者の環境でVRChatをプレイ中にZedを開くと、CPUやメモリーには余裕があるにもかかわらず、VRChatとZedがVRAMを奪い合ってしまい、パフォーマンスが極端に悪化することを確認しています。

GPUI版のDiscordはまだ正式リリースされていないため断言はできませんが、GPUI版のDiscordによってゲームのパフォーマンスが悪化する可能性は十分に考えられます。Discordはゲームと同時に起動されることが多いので、この問題に対してDiscordがどのように対処するのか(あるいは対処しないのか)注目です。

この記事の情報源

記事をシェア

フォローして最新情報を入手

Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。

Googleの優先ソースとして追加するGoogleの優先ソースとして追加する
著者のアイコン画像

生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。

Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。