出来事の日付:2026年11月12日
Jotは、テキストの取り込みと音声入力を行うアプリをRustで作り直し、バージョン1.1.4まで使っていたElectronの基盤を置き換えた。開発者によると、Jot 2.0がディスク上で占める容量は675 MBから91 MBに減り、ダウンロードするディスクイメージの容量も302 MBから44 MBに縮小した。いずれのMac版も、AppleシリコンとIntelプロセッサーに対応するユニバーサルバイナリだ。
このアプリは、選択したテキストをMarkdown形式のノートに変換し、音声による取り込みにも対応する。旧版では、Electronがメインプロセス、プリロードスクリプト、レンダラーを連携させる一方、ネイティブ機能はすでに別の補助プログラムに依存していた。新しいアーキテクチャでは、GPUを使うインターフェースフレームワークのRuneを採用し、Electronのプロセス間境界を越えて機能に関するメッセージをやり取りする代わりに、表示状態を単一のRust構造体に保持する。
ノート保管庫の監視や、ほかのアプリで選択されている内容の読み取りなど、ブロッキング処理はインターフェースのスレッド外で実行する。結果はRuneの更新機構を通じて返される。ノートに関する共通ロジックは、デスクトップアプリ、コマンドラインインターフェース、MCPサーバーが利用するコアクレートに集約された。一方、OSとの連携は共通APIの背後に置かれ、プラットフォーム別のモジュールで処理する。
この再構成によって、対応プラットフォームも広がった。Electron版はMac専用だったが、Rust版はWindowsとLinuxでも動作する。継続的インテグレーションでは、3つのシステムすべてをテストしている。ただし、Linuxには制限が1つ残る。Shiftキーを2回押すグローバルな取り込みショートカットはX11では動作するが、Waylandはその動作に必要なグローバルキーイベントを提供しない。プロジェクトの主な対象は、引き続きMacだ。
既存ユーザーは、異なるバージョンが動く複数のコンピューター間で保管庫を共有する可能性があるため、互換性は中心的な要件だった。Jot 2.0は、未知のYAMLフロントマターフィールドを破棄せずに保持し、異なるリリース間でもMarkdownファイルを読めるようにしている。また、既存の保管庫、設定、キーチェーンの項目、ライセンス、バンドル識別子を維持するため、Macユーザーはそのまま更新できる。
開発者によると、旧Electron版のコードの実行経路と照らし合わせて機能の同等性を確認し、完了した各機能の根拠として、テスト、ヘッドレス実行のスナップショット、または記録した実行結果を用いた。ソースコードの規模で見ると、Rustプロジェクトは小さくなっていない。バージョン1.1.4のTypeScriptが約7万3,000行だったのに対し、Rust版は約7万6,000行ある。Electronが提供していたインターフェース機能の一部は、比較的新しいRuneフレームワークで実装したり、検証したりする必要があった。
したがって、今回の結果は単純なコード量の削減ではなく、アーキテクチャ上のトレードオフだ。Jotは、はるかに小さなパッケージ、アプリケーション状態を一元管理する仕組み、3つのプラットフォームにまたがる統一されたOS連携層を得た。その一方で、以前はChromiumやElectronに同梱されていたインターフェースの基本機能について、より大きな責任を引き受けることになった。



