DE — heise online
Rust全面採用:DiscordがReactとElectronを廃止
ソフトウェア2分で読めます
Discord は、パソコン版アプリで Electron と React を使うのをやめ、中心部分を Rust で作り直す計画を発表しました。その中心部分はスマホ版アプリとも共有します。
何が起きたのか
Discord のCTO(技術責任者)、スタニスラフ・ヴィシュネフスキー氏が水曜日に X で発表しました。Discord は Electron(アプリを作るための土台)と React(画面を作るためのライブラリ)の利用をやめる予定です。アプリの中心部分は、速くて安全なプログラミング言語 Rust で書かれます。パソコン版の画面には GPUI という枠組みを使います。スマホ版も同じ Rust の中心部分を使います。Android と iOS は今の画面を続けますが、React Native は取り除かれます。
なぜ Rust なのか
Discord は 2018 年から Rust を使っています。2020 年には、メッセージを読み込むサービスを Go から Rust に移しました。目的は、ゴミ集め機能(使われなくなったメモリを片付ける仕組み)による突然の遅れを避けることでした。Rust はメモリの扱い方が違うため、リアルタイムの音声にも向いていました。今回は、パソコンとスマホで同じコードを使う形を目指しています。
数字で見る主な点
- 新しい Rust の土台は、メモリ(RAM)を 300MB 未満で動かす見込みです。ただし、この数字はまだ一般向けに試されていません。
- Electron は Chromium と Node.js を使うため、メモリをずっと多く使うことがあります。
- GPUI は Zed Industries が、コードエディタの Zed 用に公開しました。Zed は 4 月に 1.0 版に到達しました。
- 描画には、macOS では Metal、Windows では DirectX 11、Linux では wgpu を使います。
なぜ大事なのか
パソコンのメモリ使用量が減る可能性があります。また、パソコン版とスマホ版が同じ中心コードを使うため、両方の動きをそろえやすくなります。一方で、GPUI はまだ 1.0 版ではありません。版が変わるとコードが動かなくなることもあるので、この計画にはリスクがあります。なお、YouTube や Activities のような埋め込みコンテンツは、今後もシステムのウェブ表示機能を使います。
今後注目したい点
- 新しい Rust 版アプリが、公開テストで本当に 300MB 未満で動くかどうか。
- GPUI が 1.0 版に向けてどれだけ安定するか。
- 共有の Rust 中心部分が、Android と iOS でどれだけうまく動くか。
用語解説
- Electron
- パソコン用アプリを Web の技術で作るための土台です。
- React
- Web の画面を部品ごとに作るための UI ライブラリです。
- Rust
- 速くて安全に動くことを重視したプログラミング言語です。
- GPUI
- Zed Industries が作った、画面を描くための枠組みです。
- React Native
- 1 つのコードでスマホ用アプリを作るための枠組みです。