Zed editorがグラフィックスライブラリを刷新した理由
Rust製の高速コードエディタとして注目を集めているZed editorが、内部のグラフィックスライブラリをbladeからwgpuに移行することを発表しました。これは単なるライブラリの差し替えではなく、エディタのクロスプラットフォーム対応とパフォーマンスに大きく影響する判断です。
ZedはもともとmacOS向けにMetalをバックエンドとして開発されていましたが、Linux・Windows対応を進める中で、より汎用的なグラフィックスレイヤーが必要になったという背景があります。
bladeとwgpuの違いを整理してみる
まず、それぞれのライブラリの特徴を簡単に整理してみました。
bladeは、Zedチームが自前で開発していた軽量なグラフィックス抽象化レイヤーです。Metal(macOS)とVulkan(Linux/Windows)をサポートしていましたが、メンテナンスコストが課題でした。
wgpuは、WebGPU仕様に基づいたRust実装で、Firefox(Gecko)のレンダリングエンジンの一部としても使われています。Metal、Vulkan、DirectX 12、さらにはWebGPU(ブラウザ)まで対応する、より広範なバックエンドをカバーしています。
この違いが、移行の決め手になったようですね。
なぜ今、移行を決断したのか
Zedチームが公開した情報を読む限り、いくつかの理由が浮かび上がってきます。
- bladeのメンテナンスに割くリソースを本体の開発に集中させたい
- wgpuの方がコミュニティが大きく、バグ修正やドライバー対応が早い
- 将来的なWebブラウザ版Zedの可能性も視野に入れている
- DirectX 12対応でWindows環境のパフォーマンスが改善される見込み
特に3点目は興味深いところです。wgpuを使えば、理論的にはブラウザ上でZedを動かすことも不可能ではありません。VS Code for the Webの成功を見ると、エディタのWeb対応は競争力に直結する要素です。
wgpu移行がユーザーに与える影響
一般的なユーザーにとっては、移行による目に見える変化はそれほど大きくないかもしれません。ただ、技術的にはいくつかのメリットが期待できます。
まず、GPU互換性の向上です。bladeでは特定のGPUドライバーとの相性問題が報告されていましたが、wgpuはより多くのハードウェア構成でテストされているため、こうした問題が減る可能性があります。
また、レンダリングパフォーマンスについても、wgpuの最適化が進んでいる分、特にLinux環境での描画品質が改善される余地がありそうです。
逆に、移行期間中は一時的にリグレッション(既存機能の劣化)が発生するリスクもあります。Zedのリポジトリでイシューを追っていると、現在進行形で移行作業が進められていることがわかりますね。
Rustエコシステムにおけるグラフィックスの選択肢
Rustでグラフィックスプログラミングをする際の選択肢は、近年かなり充実してきました。wgpuの他にも、Vulkano(Vulkan特化)やash(低レベルVulkanバインディング)、そしてBevyエンジンなどが存在します。
その中でwgpuが選ばれた理由は、やはり「ちょうどいい抽象度」にあると感じています。低レベルすぎず、かといって制約が多すぎるわけでもない。エディタのようなGUIアプリケーションには、このバランスが合っているのでしょう。
関連記事
- C++とRustの連携方法|Antithesis社が実践したシングルスレッドC++×マルチスレッドRustの統合事例
- MinIOリポジトリがメンテナンス終了へ|OSSの商業化と開発者が知っておくべき代替策
- AIエージェントが勝手に中傷記事を公開?matplotlibで起きた前代未聞の事件と教訓
まとめ
Zed editorのblade→wgpu移行は、「自前で全部作る」から「エコシステムの力を借りる」への戦略転換ともいえます。限られたリソースをどこに集中させるかという判断は、オープンソースプロジェクトにとって永遠のテーマですね。
Zedの今後の動きが気になる方は、GitHubリポジトリをウォッチしておくと良いかもしれません。