Luna エコシステム概要
Lunaは、MoonBitとJavaScriptでモダンなWebアプリケーションを構築するためのツールスイートです。
どれを使うべき?
| やりたいこと | 使うもの | 言語 |
|---|---|---|
| ドキュメントサイトを作りたい | Sol SSG | Markdown + Islands |
| フルスタックWebアプリを作りたい | Sol | MoonBit |
| 既存ページにリアクティビティを追加したい | Luna UI | JavaScript/TypeScript |
| fine-grained reactivityを学びたい | Luna UI チュートリアル | JS or MoonBit |
選択フローチャート
Webサイトが必要?
├── 静的コンテンツ (ドキュメント, ブログ) → Sol SSG
└── 動的アプリ (認証, API) → Sol
学習目的?
├── JavaScript を知っている → JS チュートリアル
└── MoonBit を知っている → MoonBit チュートリアル
なぜ Luna なのか?
既存のソリューションへの不満から生まれました:
React - パフォーマンスが重要なアプリケーションには大きすぎる
Qwik / Solid - コンパイル時の変換がデバッグの邪魔になる
WebComponentsファーストのフレームワークがなかった - 今までは
設計思想
コンパイル時最適化が不要なほど小さい
| フレームワーク | バンドルサイズ |
|---|---|
| Luna | ~6.7 KB |
| Preact | ~20 KB |
| Solid | ~7 KB |
| Vue 3 | ~33 KB |
| React | ~42 KB |
Lunaは意図的にミニマルです。フレームワークのオーバーヘッドは無視できるレベルなので、コンパイル時の最適化は不要です。
WebComponents SSR(世界初の実装)
Lunaは WebComponents SSR + Hydration を完全サポートした初めてのフレームワーク です。
ブラウザ標準を優先(フレームワーク抽象化より)
Shadow DOMによるスタイルカプセル化
サーバーレンダリング用のDeclarative Shadow DOM
ランタイムパフォーマンス
| シナリオ | Luna | React |
|---|---|---|
| 100×100 DOM シューティングゲーム | 60 FPS | 12 FPS |
Fine-grained reactivityにより、実際のシナリオで 5倍のパフォーマンス を実現。
アーキテクチャ
┌─────────────────────────────────────────────────────────────┐
│ あなたのアプリケーション │
├─────────────────────────────────────────────────────────────┤
│ Sol SSG (SSG) │ Sol (SSR Framework) │
│ 静的ドキュメントサイト │ フルスタックアプリ │
├─────────────────────────────────────────────────────────────┤
│ Luna UI │
│ Signals, Islands, Hydration, Components │
├─────────────────────────────────────────────────────────────┤
│ MoonBit / JavaScript │
└─────────────────────────────────────────────────────────────┘
プロジェクト
Luna UI - リアクティブUIライブラリ
すべての基盤:
Signals - Fine-grained リアクティブプリミティブ
Islands - 最適なパフォーマンスのための部分的ハイドレーション
Components - 宣言的構文によるWeb Components
Hydration - スマートなローディング戦略(load, idle, visible, media)
Sol SSG - 静的サイトジェネレーター
Markdownからドキュメントサイトやブログを構築:
フロントマター対応のMarkdown
自動生成されるナビゲーションとサイドバー
多言語対応(i18n)
Shikiによるシンタックスハイライト
View TransitionsによるSPAナビゲーション
このドキュメントサイトもSol SSGで構築されています。
Sol - フルスタックフレームワーク
Hono統合のサーバーサイドレンダリングフレームワーク:
SSR + 部分的ハイドレーションのIsland Architecture
ミドルウェア付きの宣言的ルーティング
CSRF保護付きのServer Actions
ネストされたレイアウト
ストリーミングSSR
npmパッケージ
| パッケージ | 説明 |
|---|---|
@luna_ui/luna | コアUIライブラリ + CLI |
@luna_ui/sol | SSR/SSGフレームワークCLI(Sol SSG含む) |
クイックスタート
Luna UI (JavaScript)
npx @luna_ui/luna new myapp
cd myapp && npm install && npm run dev
Luna UI (MoonBit)
npx @luna_ui/luna new myapp --mbt
cd myapp && moon update && npm install && npm run dev
Sol SSG (ドキュメントサイト)
npx @luna_ui/sol new my-docs --ssg
cd my-docs && npm install && npm run dev
学習パス
JavaScript/TypeScript 開発者向け
JavaScript チュートリアルから始める
MoonBit 開発者向け
MoonBit チュートリアルから始める
Solでサーバーサイドコンポーネントを構築
機能比較
| 機能 | Luna UI | Sol SSG | Sol |
|---|---|---|---|
| Signals | ✅ | ✅ | ✅ |
| Islands | ✅ | ✅ | ✅ |
| SSR | - | ビルド時 | ランタイム |
| ルーティング | - | ファイルベース | ファイルベース + API |
| Markdown | - | ✅ | - |
| i18n | - | ✅ | - |
| ミドルウェア | - | - | ✅ |
| Server Actions | - | - | ✅ |
| Web Components | ✅ | ✅ | ✅ |
ステータス
実験的 - すべてのプロジェクトは活発に開発中です。APIは変更される可能性があります。
MoonBitで構築 - クラウドとエッジコンピューティング向けに設計された高速で安全な言語。