Crates.io version Download docs.rs docs CI status Awesome Page Discord Link

Web サイト | | ガイド | 中文 | PT-BR


Dioxus は、Rust でクロスプラットフォームのユーザー・インターフェースを構築するための、移植性が高く、パフォーマンスと人間工学に基づいたフレームワークです。 ```rust fn app() -> Element { let mut count = use_signal(|| 0); rsx! { h1 { "High-Five counter: {count}" } button { onclick: move |_| count += 1, "Up high!" } button { onclick: move |_| count -= 1, "Down low!" } }) } ``` Dioxus は、ウェブアプリ、デスクトップアプリ、静的サイト、モバイルアプリ、TUI アプリ、ライブビューアプリなどの配信に使用できます。Dioxus は完全にレンダラーに依存せず、あらゆるレンダラーのプラットフォームとして使用可能です。 React を知っているのであれば、Dioxus はすでにご存知でしょう。 ## ユニークな特徴: - 10 行以下のコードでネイティブに動作するデスクトップアプリ(Electron は不要!)。 - 人間工学に基づいたパワフルな状態管理。 - 包括的なインラインドキュメント - すべての HTML 要素、リスナー、イベントのホバーとガイド。 - 驚異的な速さ 🔥 🔥 と極めて高いメモリ効率 - 高速反復のための統合されたホットリロード - コルーチンとサスペンスによるファーストクラスの非同期サポート - などなど![リリース記事全文](https://dioxuslabs.com/blog/introducing-dioxus/)を読む。 ## 対応プラットフォーム
Web
  • WebAssembly を使って DOM に直接レンダリングする
  • SSR でプレレンダリングし、クライアントの上で再ハイドレーション
  • シンプルな "hello world "は約 65kb で、React と同等
  • 開発サーバーを内蔵し、ホットリロードで迅速なイテレーションを実現
デスクトップ
  • ウェブビューを使ったレンダリング、あるいは実験的に WGPU や Skia を使ったレンダリング
  • 設定不要。cargo-run を実行するだけで、アプリをビルド可能
  • 電子的な IPC を必要としないネイティブシステムアクセスの完全サポート
  • macOS、Linux、Windows に対応。ポータブルで 3 mb より小さなバイナリ
モバイル
  • ウェブビューを使ったレンダリング、あるいは実験的に WGPU や Skia を使ったレンダリング
  • iOS と Android をサポート
  • React ネイティブよりも大幅にパフォーマンスが高い
ライブビュー
  • アプリケーション、または単一のコンポーネントを完全にサーバー上でレンダリング
  • Axum や Warp のような人気のある Rust フレームワークとの統合
  • 極めて低いレイテンシーと 10,000 以上の同時アプリをサポートする能力
ターミナル
  • ink.js のように、アプリケーションをターミナルに直接レンダリング
  • ブラウザでおなじみのフレックスボックスと CSS モデルを採用
  • テキスト入力、ボタン、フォーカスシステムなどの組み込みウィジェット
## なぜ Dioxus? アプリを構築するための選択肢は山ほどあるのに、なぜ Dioxus を選ぶのでしょうか? まず第一に、Dioxus は開発者の体験を優先しています。これは Dioxus 独自のさまざまな機能に反映されています: - メタ言語(RSX)とそれに付随する VSCode 拡張機能のオートフォーマット機能 - デスクトップとウェブの両方で RSX のインタプリタを使用したホットリロード - 優れたドキュメントの重視 - 私たちのガイドは完全で、私たちの HTML 要素は文書化されています。 - 簡素化のための多大な研究 Dioxus は非常に拡張性の高いプラットフォームでもあります。 - 非常にシンプルに最適化されたスタックマシンを実装することで、新しいレンダラーを簡単に構築できます。 - コンポーネントやカスタム・エレメントもビルドして共有できます Dioxus は素晴らしいが、なぜ私には使えないのか? - まだ完全に成熟していません。API はまだ移行中で、いろいろなものが壊れるかもしれません(私たちはそれを避けようとしていますが)。 - no-std 環境で動作させる必要がある。 - UI を構築する React-hooks モデルが好きではない場合 ## コントリビュート - 私たちの [issue tracker](https://github.com/dioxuslabs/dioxus/issues) で問題を報告してください。 - ディスコードに参加して質問してください! ## ライセンス このプロジェクトのライセンスは [MIT ライセンス] です。 [MIT ライセンス]: https://github.com/DioxusLabs/dioxus/blob/master/LICENSE-MIT あなたが明示的に別段の定めをしない限り、あなたによって Dioxus に含めるために意図的に提出されたコントリビュートは、 いかなる追加条件もなく、MIT としてライセンスされるものとします。