世界を動かす技術を、日本語で。

HNに表示: MacのElectronアプリをRustで書き直しました

2025年5月29日原文(desktopdocs.com)

概要

  • Desktop Docs はAI搭載のファイルエクスプローラー
  • 画像・動画の内容 で高速検索を実現
  • 完全ローカル処理 でプライバシーを確保
  • サブスクリプション不要 の買い切り型
  • Rust/Tauri への移行で軽量化と安定性向上

Desktop Docs:AIファイルエクスプローラーの特徴

  • AIによるコンテンツ理解 画像や動画を ファイル名ではなく内容 で解析・検索

  • 100%ローカル処理 全データ処理が Mac上で完結、クラウドアップロード不要

  • 圧倒的な検索速度 0.3秒以内 で検索結果表示

  • 買い切り型ライセンス サブスクリプション不要、一度の支払いのみ

  • 世界中のプロが信頼 制作スタジオやクリエイター の導入実績多数

    • 50以上のアクティブスタジオ
    • 1000人以上のプロクリエイター
  • AI Tech Suiteで高評価 2024年の トップレートアプリ に選出

主な機能とメリット

  • 自然言語検索 「夕日の写真」「犬が映っている動画」など 直感的なクエリ に対応
  • 画像類似検索 参考画像をアップロードし、 類似・重複・関連画像 を即座に抽出
  • クロスフォーマット対応 主要な 画像・動画フォーマット を一括管理
  • 完全ローカルのファイル管理 ファイルはすべてMac内 で管理、データ流出リスクなし
  • インデックス無制限 無制限のファイル登録 で大規模ライブラリも一元管理
  • クイック編集 重いアプリ不要 で軽微な編集が可能
  • 知識ベース化 ファイルの 体系的な整理・活用 を実現

導入効果とユーザーの声

  • 管理作業の自動化 AIが面倒なファイル探しを代行
  • 10倍速いファイル検索 従来比10倍のスピード で目的のファイルを発見
  • インスピレーションの源泉 クリエイティブな混沌を整理 し、創造性を最大化

ファイル互換性とサポート

  • 全主要フォーマット対応 画像・動画すべて を一括管理
  • FAQとアップデート情報 活用法・最新情報 を随時提供

Rust/Tauri移行の舞台裏

  • ElectronからRust/Tauriへの全面リビルド
    • アプリ容量83%削減 :1GB → 172MB
    • インストーラー容量70%削減 :232MB → 69.5MB
    • インデックス速度向上 :38分の動画も約3分で処理(従来は10-14分)
    • 安定性大幅向上ランダムクラッシュ解消
  • Electron時代の課題
    • 大容量・高負荷 :Chromiumベースで200MB消費
    • 大量ファイル処理の非効率 :複雑なワーカーシステムが必要
    • UIの複雑化 :旧UIの移植ではなく ゼロから再設計
  • Rust/Tauri採用の決断理由
    • Swift未経験・Rust初心者 からの挑戦
    • パフォーマンスと安定性重視 の選択
  • 技術的チャレンジ
    • Rust/Tauriコミュニティの成熟度不足
    • Redisバンドルの権限管理
    • CLIP埋め込みによるローカルセマンティック検索
  • リビルドの成果
    • コア機能の圧倒的向上 :インデックス・検索のパフォーマンスが飛躍
    • 作り直しの価値既存コードの破棄も最適解

AMA(なんでも質問受付)

  • Rust/Tauri移行の詳細
  • Redisバンドルの課題と解決策
  • CLIP埋め込みによるローカル検索の仕組み
  • Electronの限界とRust/Tauriの優位性

Hackerたちの意見

目的地がMacアプリだったなら、Rust/TauriじゃなくてSwift/SwiftUIの方が良かったんじゃない?ちょっと気になっただけなんだけど。

見てくれてありがとう!Desktop Docsの目標はクロスプラットフォーム対応なんだ。Windowsサポートのリクエストがたくさん来てるから、Rustを選んでWindows版に向けて準備してるんだよ。

同じ質問をしようと思ってた。Swiftって結構いい言語だし、Rustの利点もいくつか持ってるみたいだよね。別のコメントでも聞かれてたけど、CLIPsの統合についての詳細も知りたいな。アプリをポートする必要があった理由の話、面白かったよ。

私も気になる!デスクトップアプリを作る予定なんだけど、Swiftはしばらく使ってないし、Rustもまだ初心者なんだ。Tauriはすごく期待できそう。Electronアプリは本当に嫌い。超速いマシンでも起動が遅すぎるから。何かアドバイスあったら教えて!

最近、逆のことをやったよ(Tauriでプロジェクトを始めて、Electronに移行した)。異なるプラットフォームで使われるウェブビューのレンダリングの違いにフラストレーションを感じたから。切り替えてからクロスプラットフォームのUIバグに遭遇した?あなたのUIのニーズはシンプルそうだけど、計算は複雑だから、追加のQAのトレードオフはまだ価値があると思う。私の経験が珍しいのか、レンダリングの違いが一般的なのか気になってる。Tauriは2.0にしたの?1.0の途中で2.0の安定版が出たけど、移行は大変だったし、ドキュメントも全然足りなかった。ドキュメントは整理された?

レンダリングの違いって言うと、実際のHTML/CSSのレンダリングのことを指してるの?それともJSのサポートの違いについて言ってるの?

私はウェブ開発者で、TauriやElectronはあまり使ったことがないんだ。なんで異なるプラットフォーム間のレンダリングの違いがそんなに問題になるのか疑問なんだ。ウェブアプリを作るときも同じような課題に直面するから、あまり変わらないと思うんだけど。

実は、Tauriのバージョンではまだクロスプラットフォームサポートを展開してないから、どうなるか見てみるつもり。幸い、私たちのUIのニーズはシンプルなんだ。Tauriでどんなレンダリングの違いを見たの?あなたのアプリにとって最も良かったプラットフォーム、または最悪だったプラットフォームはあった?次はWindowsをサポートしたいんだ。Electron版では、IntelチップのMacでバンドルしたバイナリが動かない問題があって、すごく頭を悩ませたから、Tauriでの再構築ではまず一つのプラットフォーム(AppleチップのMac)に集中することにしたんだ。Tauri 1.4を選んで、今のところ問題はないよ。2.0の移行のドキュメントも確認してみないとね。

Tauriでのレンダリングの違いに対処するのは、普通のウェブアプリを作るのとそんなに難しくないよね?

https://kreya.app ではシステムウェブビューを使ってる(Tauriじゃなくてカスタム実装だけど)。プラットフォームの違いはあまり問題にならないよ。ポリフィルでほとんどの問題は解決できてるし、Linuxで自動化されたエンドツーエンドテストを実行してるから、大体の問題は見つかる。個人的には、ユーザーがどれくらい古いウェブビューのバージョンを使ってるかを把握するのが一番難しいと思う。特にLinuxとmacOSでね。WindowsはWebView2の実装がうまくいってる。

同じような経験をしたよ。1ヶ月後にTauri 2.0からElectronに切り替えた。UIの不一致があっただけじゃなくて、SafariはポップオーバーAPIみたいな面でChromeに遅れをとってるし、Tauriのビルドやコードサイン、CDエコシステムはめちゃくちゃ散らばってる。使ってた時は、IAPもTauriにはあんまり選択肢がなかったし、ドキュメントやリソースも見つけられなかった。

もうハネムーン期間は終わったね。「XからYに移ったけど、すごく好きだった」っていう投稿は、ハネムーンのポストカードみたいなもんだよ。

Hacker Newsで議論の続きを見る