Murasaki

イントロダクション

デスクトップアプリのための Next.js DX — React 19 + Vite、Rust ネイティブ、Rust を書く必要はありません。

Murasaki を使えば、Next.js アプリを作る感覚のままネイティブなデスクトップアプリを構築できます。ファイルベースルーティング、レイアウト、サーバーアクション、API ルート、そして React 19 — これらすべてが、Electron のバンドルされた Chromium ではなく、Rust ネイティブなウィンドウの上で動作します。

あなたが書くのは React と TypeScript だけです。Murasaki は小さな Rust コア(@murasakijs/native、tao/wry/muda をベースに構築)を同梱しており、本物のネイティブウィンドウ、ネイティブメニュー、OS との統合を提供します — Rust を一切書く必要はありません

Murasaki を選ぶ理由

MurasakiElectronTauri
UI ランタイムOS WebView (wry)bundled ChromiumOS WebView
言語TypeScript / ReactTypeScript / ReactTypeScript + Rust
DXNext.js 風(Vite HMR)manual wiringmanual wiring
メモリ(アイドル時)Electron の約 1/5*baselinesmall
インストーラーサイズ~43 MB .dmg / ~120 MB .app~80–150 MB*~3–10 MB*
サーバーアクションdefineAction / useActionmanual IPCmanual IPC / commands

* Electron/Tauri でよく引用されるおおよその目安であり、実測ベンチマークではありません。 † macOS で実測。.app はフル Node ランタイムを同梱しているため、サイズの大部分はそこか ら来ています。

Murasaki を選ぶべきなのは、React/Next.js を知っていて、Rust を学んだり IPC を手動で配線したりすることなく、軽量なデスクトップアプリを作りたい人です。

できること

  • ファイルベースルーティングsrc/app/**/page.tsx、レイアウト、動的セグメント、 loading / error / not-foundmiddleware.ts。詳しくはルーティングを参照してください。
  • Server Actions'use server' + defineAction / useAction、おなじみの React 19 の形そのままです。詳しくはServer Actionsを参照してください。
  • Node Main — DB、socket、worker、background work のための長寿命 Node lifecycle と 型付き 'use main' call。Node Mainを参照してください。
  • API Routes — Next.js 風の src/api/**/route.ts による HTTP エンドポイント。詳しくは API Routesを参照してください。
  • ネイティブウィンドウ & メニュー — 本物のネイティブウィンドウ、ネイティブメニューバー、 スコープ付きのネイティブコンテキストメニュー(NSMenu であり、HTML のポップアップでは ありません)。詳しくはNative APIsを参照してください。
  • UI キット@murasakijs/ui、shadcn スタイルのコンポーネントライブラリです。詳しく はスタイリングとライブのコンポーネントを 参照してください。
  • 本格的な配布 — ポータブルでクロスアーキテクチャ対応の .app バンドル、コード署名 + 公証にも対応。詳しくはDistributionを参照してください。

バンドルは macOS(.app / .dmg)と Windows(.zip / .exe / .msi)向けの インストーラを出力します。Linux(.AppImage)はロードマップに含まれています。Rust コア自体はすでに 5 つのターゲットすべてでビルド可能です。

Murasaki は 1.0 未満です。global shortcut、Linux packaging / signing などの本番 blocker は プラットフォームと機能の状況で 確認してください。

次のステップ

GitHub でこのページを改善

On this page