Skip to content
naruminchoPublic

About

deiny is web app for web app. under development

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Repository files navigation

definy

いろいろ整理中なため ファイル数が極端に少ないです... いろいろ調整する前 https://github.com/narumincho/definy/tree/prev2023

definyのスクリーンショット

フォルダとファイルの説明

  • .github/workflows/pull_request.yaml: Pull Request したときに実行されるテストの処理が書かれている
  • .vscode: VSCode 向けの設定
  • assets: スタティックなファイルが置かれている
  • definy-event: イベント・ドメインモデルの定義、署名検証、コンテンツハッシュ計算
  • definy-core: 純粋な言語コア評価器、AST ソースコード生成、WebAssembly コンパイラ & 実行 VM
  • definy-ui: ブラウザとサーバーでレンダリングする共通の UI コンポーネント、AST 式エディタ
  • definy-server: サーバーで動かすコード (Axum, SurrealDB, MCP サーバー, SSR & アセット配信, セルフホスト用ビルトインパーツ)
  • definy-client: ブラウザで動かす Dioxus / Wasm エントリポイント
  • docs: ドキュメント (セルフホスト構想, クレート構成, パーツ型システム, Connect-RPC 仕様 など)

事前にインストールが必要

DB 起動コマンド (任意)

デフォルトでは DATABASE_URL を指定しない場合、インメモリの SurrealDB (mem://) で動作します (サーバー再起動時にデータは保持されません)。

永続化のために SurrealDB サーバーを Docker で起動する場合:

docker run -d --name definy-dev-db -p 8000:8000 surrealdb/surrealdb:latest start --user root --pass root

本体サーバー起動コマンド

1. インメモリDBで手軽に起動する場合 (DATABASE_URL 不要)

cargo run -p definy-server

※ クライアントの最新 Wasm をビルドする場合は dx build --package definy-client を実行します(definy-server はディスク上の最新 Wasm/JS/CSS を自動検出して配信するため、サーバーの再起動なしでブラウザのリロードだけで反映されます)。

2. Dioxus Fullstack で開発する場合 (推奨)

Dioxus CLI (dx) を使用して、バックエンドサーバー (API / SurrealDB / SSR) と Web クライアント (WASM) を単一コマンドで同時に起動・ホットリロード開発できます。

事前準備 (初回のみ): https://dioxuslabs.com/learn/0.7/getting_started/#install-the-dioxus-cli

cargo install dioxus-cli

起動コマンド:

dx serve --fullstack

※ dx serve --fullstack を実行すると、バックエンドサーバー (Axum + SurrealDB + MCP + SSR) とフロントエンド (Wasm) の双方が自動起動し、http://localhost:8080 でアクセスできます。コードを変更すると自動的に再ビルド・ホットリロードされます(default-members 設定により --package definy-client の指定は不要です)。

3. SurrealDB サーバー / Surreal Cloud に接続して起動する場合

環境変数を指定して起動します:

  • 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 の場合

DATABASE_URL=wss://definy-xxx.aws-aps1.surreal.cloud \
DATABASE_USER=flyio \
DATABASE_PASS=password \
cargo run -p definy-server

PowerShell の場合

& {
    $env:DATABASE_URL = "wss://definy-xxx.aws-aps1.surreal.cloud";
    $env:DATABASE_USER = "flyio";
    $env:DATABASE_PASS = "password";
    cargo run -p definy-server
}

テストとコード品質の検証

# ワークスペース全体の単体テスト実行
cargo test --workspace

# 静的解析・Clippy チェック (警告 0 件ルール)
cargo clippy --workspace --all-targets -- -D warnings

# コードフォーマット
cargo fmt
dx fmt

About

deiny is web app for web app. under development

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages