プレビュー · オープンソース
XAML を書いて、
本物の HTML を届ける。
Web サイトのように読み込まれる Web アプリ。WebAssembly も、ブラウザーのランタイムも、書く JavaScript もありません。同じコードが Windows、macOS、Linux のネイティブアプリにもなり、どちらでもホットリロードが使えます。
毎秒リクエスト数
1,470
レイテンシ中央値
21.1 ms
シミュレーションのトラフィック。サーバーで毎秒計算しています。
XAML 保存 · 28 ms
JavaScript 0 行
サーバーからライブ配信
ひとつのコードで、すべての画面に
Web
Windows
macOS
Linux
Android · 予定
iOS · 予定
.NET 10
C#
XAML
Aioros.Cosmo
Aioros.Pictor
Aioros.Graphs
Web
Windows
macOS
Linux
Android · 予定
iOS · 予定
.NET 10
C#
XAML
Aioros.Cosmo
Aioros.Pictor
Aioros.Graphs
課題

ひとつのプロダクトに、ふたつのスタック

チームは Web サイトをあるスタックで、デスクトップアプリを別のスタックで作るか、Web サイトを Web ビューで包んで「ネイティブ」と呼びます。足並みをそろえ続けるふたつのコードベースか、どこか馴染まないひとつのアプリか。
Web アプリ
コンポーネントとクライアントの状態 · クライアント向けの API 層 · バンドラーとその設定 · ハイドレーション
ネイティブアプリ
別の UI ツールキット、しばしば別の言語 · 独自のナビゲーションとデータ読み込み · あるいはブラウザーを同梱する Web ビュー
Aioros なら
ひとつの XAML ページとそのビューモデル · サーバーで読み込み、Web では HTML として描画 · 同じページがデスクトップではネイティブに
ひとつの XAML、すべてのターゲット

書いたページが、そのまま届くページ

ページは XAML とビューモデル。サーバーはそれをプランにコンパイルして HTML と CSS を返し、デスクトップは同じ XAML をネイティブに実行します。コードの隣のカードは、そのコードをいまご覧のサーバーが描画したものです。
Pages/report/Page.axaml
<c:Card> <c:CardHeader Title="Weekly report" Description="Sent every Monday to your team." /> <c:CardContent> <ToggleSwitch Content="Include charts" IsChecked="{Binding Charts}" /> </c:CardContent> <c:CardFooter> <Button Content="Save" Command="{Binding Save}" /> </c:CardFooter> </c:Card>
週次レポート
毎週月曜日にチームへ送信。
サーバーからライブで

見ている間にも届く

ホストされたサービスが毎秒時を刻み、データキーを無効化します。それを読むビューだけが再描画され、サーバーが開いているすべてのページへ届けます。
WebSocket のコードも、クライアントの状態も、あなたの JavaScript もいりません。
毎秒リクエスト数
1,470
レイテンシ中央値
21.1 ms
オンラインの訪問者
3,456
リクエスト数(直近 60 秒)
051525354555600900120015001800
051525354555600900120015001800
シミュレーションのトラフィック。サーバーで毎秒計算しています。
開発体験

ファイルを保存すれば、変更が見える。

本格的なフレームワークに Web 開発者が期待するツールを、Web とデスクトップの XAML に。
Pages/Page.axaml
<StackPanel Spacing="12">
<TextBlock Text="Hello, world" />
<TextBlock Text="Hello, Aioros" />
</StackPanel>
編集して、すぐ見る
Hello, world
Hello, Aioros
保存 · 28 ms
両方でホットリロード
XAML の編集は約 30 ms、C# の編集は約 75 ms で画面に反映。Web でもデスクトップでも、スクロール・フォーカス・入力内容はそのまま。
XAML の行でエラー
ビルドの失敗やページの例外は、ファイルと行を示すオーバーレイをページ上に表示。直せば消えます。
aioros dev
ひとつのコマンドでホットリロード付きの実行、空きポートの検出、ビルドの報告まで。Web 向けにも、--desktop でも。
ビルド時にチェック
アナライザーとコード修正が、本番でページを壊すものを実行前に検出。サーバーがコンパイルできないページは、その行でビルドを失敗させます。
パフォーマンス

最初のリクエストの前にコンパイル済み

ページは一度だけトレースされ、ビューモデルから直接 HTML を書き出すプランになります。同じマシンで、各スタックで作った同じアプリと比較して計測。
10.2×
キャッシュ有効のサーバーレンダリング Next.js より高速
7.8×
Blazor の静的サーバーレンダリングより高速
2.1×
Go で書いた同じアプリより高速
4.3×
Rust(Leptos)で書いた同じアプリより高速
ページごとの毎秒リクエスト数
Lumen(5 つのスタックで作った課題管理アプリ)、64 接続、サーバー 4 コア、ベンチマーク第 241 回(2026 年 10 月)。5 ページの幾何平均。
/issues/LUM-105/settings/inbox/issues/projects85,62057,96153,94331,91716,378
/issues/LUM-105/settings/inbox/issues/projects85,62057,96153,94331,91716,378
/issues/LUM-105/settings/inbox/issues/projects85,62057,96153,94331,91716,378
すべて込み

本格的なフレームワークの条件

描画、データ、モーション、多言語、アクセシビリティ。すべて組み込みで、どのターゲットでも同じ。
28 ms
どこでもホットリロード
XAML や C# を保存すると、開いているページとウィンドウが状態を保ったまま更新。
標準でライブ
データキーを無効化すれば、それを読むビューがすべての画面で更新。
あなたに合わせるテーマ
端末に合わせたライトとダーク。訪問者ごとに、ちらつきなし。

Hello

Hola

你好
こんにちは
あらゆる言語
カルチャーごとのリソース、言語ごとのアドレス、すべてプリコンパイル。
Tab ↹
アクセシブルなマークアップ
ネイティブ要素、ランドマーク、ラベル、フォーカスを XAML から生成。
本物のデスクトップアプリ
Web ビューではなく、ネイティブのウィンドウと描画で、同じページを。
Aioros.Cosmo · XAML の shadcn/ui

shadcn/ui のすべてのコンポーネントを XAML で

67 のコンポーネントすべてを、バリアント、デザイントークン、ライトとダークの 12 のカラーテーマとともに。Web ではどれも本物の HTML(ボタンは <button>、リンクは <a>)、デスクトップではネイティブコントロールです。
67/67
移植済みの shadcn/ui コンポーネント
99.5–100%
のピクセルが shadcn/ui 本家の描画と一致
12
のカラーテーマ(ライトとダーク)
アカウントを作成
下にメールアドレスを入力してアカウントを作成します。
通知
メールダイジェスト
プッシュ通知
メンションのみ
ここでアカウントを変更できます。終わったら保存してください。
変更を保存
チームメンバー
Owner
SD
Sofia Davis
m@example.com
Member
JL
Jackson Lee
p@example.com
Viewer
IN
Isabella Nguyen
i@example.com
アップロードの進行状況
ボタンとバッジ
Badge
Secondary
Outline
Destructive
Cosmo を見る
Aioros.Pictor · XAML の Recharts

Recharts のグラフを、JavaScript を書かずに

Recharts 2.15.4 の API 全体を XAML で。サーバーが SVG として書き出し、CSS とフレームワークのスクリプトで操作でき、サーバーが新しいデータを送るとライブで更新され、デスクトップではネイティブに描画されます。
12
種類のグラフ、Recharts のすべてのエクスポート
96×
Recharts のサーバーレンダリングより高速
2.15.4
API を踏襲する Recharts のバージョン
Page BPage DPage EPage G

Page A

  • Uv : 4000
  • Pv : 2400

Page B

  • Uv : 3000
  • Pv : 1398

Page C

  • Uv : 2000
  • Pv : 9800

Page D

  • Uv : 2780
  • Pv : 3908

Page E

  • Uv : 1890
  • Pv : 4800

Page F

  • Uv : 2390
  • Pv : 3800

Page G

  • Uv : 3490
  • Pv : 4300
Page BPage CPage DPage EPage G

Page A

  • Uv : 4000
  • Pv : 2400

Page B

  • Uv : 3000
  • Pv : 1398

Page C

  • Uv : 2000
  • Pv : 9800

Page D

  • Uv : 2780
  • Pv : 3908

Page E

  • Uv : 1890
  • Pv : 4800

Page F

  • Uv : 2390
  • Pv : 3800

Page G

  • Uv : 3490
  • Pv : 4300
エリア
Page BPage DPage EPage F

Page A

  • Amt : 1400
  • Pv : 800
  • Uv : 590

Page B

  • Amt : 1506
  • Pv : 967
  • Uv : 868

Page C

  • Amt : 989
  • Pv : 1098
  • Uv : 1397

Page D

  • Amt : 1228
  • Pv : 1200
  • Uv : 1480

Page E

  • Amt : 1100
  • Pv : 1108
  • Uv : 1520

Page F

  • Amt : 1700
  • Pv : 680
  • Uv : 1400
Page BPage CPage DPage EPage F

Page A

  • Amt : 1400
  • Pv : 800
  • Uv : 590

Page B

  • Amt : 1506
  • Pv : 967
  • Uv : 868

Page C

  • Amt : 989
  • Pv : 1098
  • Uv : 1397

Page D

  • Amt : 1228
  • Pv : 1200
  • Uv : 1480

Page E

  • Amt : 1100
  • Pv : 1108
  • Uv : 1520

Page F

  • Amt : 1700
  • Pv : 680
  • Uv : 1400
複合
MathChineseEnglishGeographyPhysicsHistory
レーダー
Pictor を見る
Aioros.Graphs · C# の d3

d3 の描画エンジンを、バイト単位で

d3 から移植したスケール、シェイプ、カーブ、階層、コード、サンキー、フォースを、d3 自身の出力と照合してテストしています。SVG のパスデータはバイト単位で同じで、C# の構造体と span によって点ごとのメモリ割り当てなしに書き出されます。
19/19
のグラフが d3 とバイト単位で一致
2.7×
それらのグラフで d3 より高速
3.8×
52 のマイクロベンチマークで高速
フォース有向グラフ
パーティションのサンバースト
コードダイアグラム
円パッキング
整列ツリー
ストリームグラフ
Graphs を見る
比較

2 つのスタックを 1 つに

チームが書き、そろえ続けるものを並べて比較。
Web スタック + デスクトップスタック
Web ビューアプリ
Aioros
そろえ続けるコードベース
2
1
1
書く JavaScript
大量
大量
なし
デスクトップのネイティブ描画
サーバーレンダリングでインデックス可能
クライアントコードなしのライブ更新
Web とデスクトップでホットリロード
プラットフォームとロードマップ

いまと、これから

Aioros が対応するすべてのターゲットで同じページを。対応先は広がり続けます。
Web
対応済み
Windows
対応済み
macOS
対応済み
Linux
対応済み
Android
予定
iOS
予定
プレビュー:Web、Windows、macOS、Linux
人とエージェントのためのデザインタイム
Android と iOS
バージョン 1.0
よくある質問

疑問にお答えします

JavaScript を書く必要はありますか?
いいえ。ページは XAML と C# です。ナビゲーション、ライブ更新、モーション用の小さなスクリプトはフレームワークに含まれ、それがなくてもページは動きます。
XAML ページはどうやって HTML になるのですか?
各ページは一度だけトレースされ、ビューモデルから直接 HTML と CSS を書くプランになるので、リクエストごとの処理はほとんどありません。
既存の XAML は使えますか?
はい。Aioros は Avalonia の XAML を、そのコントロール、スタイル、バインディング、ビューモデルごと扱えます。
本番で使えますか?
現在はプレビューです。フレームワークとライブラリはテストと計測を経ていますが、1.0 までに API が変わる可能性があります。
何の上で動きますか?
サーバーとデスクトップは .NET 10。Web はあらゆるブラウザー、デスクトップは Windows・macOS・Linux のネイティブウィンドウ。
はじめる

次のアプリを XAML で

本物のダッシュボード付きテンプレート、ホットリロード対応の開発サーバー、そして Web とデスクトップに共通のコード。
bash
$
dotnet new install Aioros.Cosmo.Templates
$
dotnet new cosmo -n MyApp
$
cd MyApp && aioros dev
✓ Ready on http://localhost:3000 · hot reload on
1
テンプレートをインストール
dotnet new install Aioros.Cosmo.Templates
2
アプリを作成
dotnet new cosmo -n MyApp
3
ホットリロードで実行
cd MyApp && aioros dev
--desktop を付けると、同じアプリがネイティブウィンドウで開きます。