いろいろ整理中なため ファイル数が極端に少ないです... いろいろ調整する前 https://github.com/narumincho/definy/tree/prev2023
-
Old Version WebAssemblyを使って数値の足し算, 引き算, 掛け算ができる
-
.github/workflows/pull_request.yml: Pull Request したときに実行されるテストの処理が書かれている -
.vscode: VSCode 向けの設定 -
assets: スタティックなファイルが置かれている -
definy-build: ビルドスクリプト -
definy-client: ブラウザで動かすコード -
definy-server: サーバーで動かすコード -
definy-ui: ブラウザとサーバーでレンダリングする共通のUIコンポーネント -
docs: ドキュメントが置かれている -
narumincho-vdom: 仮想DOMのライブラリ -
narumincho-vdom-client: ブラウザで動かす仮想DOMのライブラリ -
web-distribution: definy-build で生成したファイル (gitignore している)
デフォルトでは DATABASE_URL を指定しない場合、インメモリの SurrealDB (mem://) で動作します (サーバー再起動時にデータは保持されません)。
永続化のために SurrealDB サーバーを Docker で起動する場合:
docker run -d --name definy-dev-db -p 8000:8000 surrealdb/surrealdb:latest start --user root --pass rootcargo run -p definy-build && cargo run -p definy-serverDioxus CLI (dx) を使用してホットリロード付きで Web クライアントを開発・即座に画面確認できます。
バックエンド API (definy-server) と通信する場合は、definy-server を別ターミナルで起動します(ポート 8080 からアクセス時はデフォルトで http://localhost:8000 に接続します。接続先を変更したい場合は環境変数 DEFINY_API_URL を指定可能です)。
事前準備 (初回のみ):
curl -sSL https://dioxus.dev/install.sh | bashターミナル 1 (APIサーバー起動):
cargo run -p definy-serverターミナル 2 (ホットリロードクライアント起動):
dx serve --package definy-client
# 別のAPIサーバーURLを指定する場合:
# DEFINY_API_URL=http://localhost:8000 dx serve --package definy-client※ UIコード (definy-ui) やクライアントコードを編集・保存すると、ブラウザ上で即座に変更が反映されます。
また、サーバーやビルドを含む全体の変更を検知して自動再起動したい場合は cargo-watch を利用することも可能です:
cargo install cargo-watch
cargo watch -x "run -p definy-build" -x "run -p definy-server"環境変数を指定して起動します:
DATABASE_URL: SurrealDB のエンドポイント(例:ws://localhost:8000またはwss://definy-xxx.aws-aps1.surreal.cloud)DATABASE_USER: ユーザー名(任意)DATABASE_PASS: パスワード(任意)DATABASE_NS: 名前空間(任意、デフォルト:definy)DATABASE_DB: データベース名(任意、デフォルト:definy)DATABASE_AUTH_LEVEL: 認証レベル(任意、Database(デフォルト),Namespace,Root)
Linux, Mac の場合
cargo run -p definy-build
DATABASE_URL=wss://definy-xxx.aws-aps1.surreal.cloud \
DATABASE_USER=flyio \
DATABASE_PASS=password \
cargo run -p definy-serverPowerShell の場合
cargo run -p definy-build
& {
$env:DATABASE_URL = "wss://definy-xxx.aws-aps1.surreal.cloud";
$env:DATABASE_USER = "flyio";
$env:DATABASE_PASS = "password";
cargo run -p definy-server
}