Vocably — AI搭載の高速テキストエディタ(Rust / egui)

AI/ML

概要

Vocablyは、ローカルデスクトップ向けに設計されたAI支援型テキストエディタです。Rust言語で書かれ、GUIフレームワークegui(eframe)を用いて軽快なユーザーインターフェースを実現しています。アプリは入力された文章を大規模言語モデル(LLM)で解析し、文脈に沿った語彙や表現の改善候補をハイライト表示します。作業フローはドラフト入力→解析→候補表示→置換/適用という流れで、ローカル実行や安全性を重視する設計が伺えます。なおREADMEにもあるとおり現状はプレビュー段階で、バグやクラッシュの可能性があります。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 12
  • ファイル数: 5
  • メインの言語: Rust

主な特徴

  • Rust + egui(eframe)を使ったローカルデスクトップUIで高速かつ軽量
  • LLMを利用した文脈理解に基づく語彙・表現の提案機能
  • テキスト内の改善可能な語をハイライト表示し、置換候補を提示
  • プレビュー段階の実装で、実験的な機能を素早く試せる

技術的なポイント

READMEとリポジトリ構成から読み取れる技術的な焦点は大きく分けて「フロントエンド(GUI)設計」「LLMとの疎結合な連携」「パフォーマンスと安全性の配慮」の3点です。まずGUIはegui/eframeによる即時モード(immediate mode)UIで構築されているため、描画とイベント処理が一本化され、軽量なインタラクティブ体験が得られます。eguiではAppトレイトを実装して状態管理を行うため、編集バッファや選択状態、候補リストなどのUI状態をRustの型で安全に保持できます。

LLM連携はREADMEに「uses Large Language Models」とあることから外部API(例: OpenAI等)やローカルモデルバインディングのいずれかを想定します。Rust側ではHTTPクライアント(reqwest等)やFFIラッパーを用いて非同期で推論要求を投げ、受け取った候補をUIスレッドに安全に渡すためにチャネル(std::sync::mpscやcrossbeam)やtokioのタスクを用いる設計が自然です。処理はネットワーク遅延や重い推論でUIが固まらないようにワーカースレッドで行い、進捗やストリーミングでトークンを返す実装も考えられます。

パフォーマンス面ではRustの低いオーバヘッドとeguiの効率的な再描画により「blazingly fast」を目指せます。一方でLLMへの呼び出しはコストやレイテンシが高いため、候補のキャッシュ(ハッシュマップ)や入力差分のみを送る差分化、APIキー管理やレート制御、エラーハンドリングを組み込むことが重要です。さらにセキュリティとプライバシーの観点からは、APIキーをファイルに平文で置かない、送信前にテキストを匿名化する、ローカルモデルを使うオプションを提供するなどの配慮が考えられます。

開発面ではCargo.tomlによる依存管理と、eframeのバージョン固定、クロスプラットフォーム(Windows/macOS/Linux)対応のためのビルド設定がポイントです。将来的にはモデルプラグイン、オフライン推論(llama.cpp等)や豊富な編集操作(差分表示・元に戻す履歴)の追加が想定され、拡張性の高いアーキテクチャ設計が求められます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • Cargo.lock: file
  • Cargo.toml: file
  • README.md: file
  • src: dir

まとめ

Rustとeguiで素早く試せるAI支援テキスト編集のプレビュー実装。将来性があり実用化余地も大きい。

リポジトリ情報:

READMEの抜粋:

Vocably

THIS IS STILL A PREVIEW, NOT THE FINAL APPLICATION, BEWARE OF BUGS AND CRASHES

Vocably is a smart, AI-powered desktop application written in Rust and powered by egui. It helps you refine your writing by analyzing your text and suggesting better, more contextually appropriate alternative words. The app uses Large Language Models (LLMs) to understand your sentences and highlight words that can be improved.

Features

  • Local Desktop Interface: Built with eframe (egui) for …