| --- |
| title: 環境構築 |
| --- |
| |
| # 環境構築 |
|
|
| ## リポジトリを取得する |
|
|
| ```bash |
| git clone https://github.com/mayocream/koharu.git |
| cd koharu |
| ``` |
|
|
| ## 前提ツール |
|
|
| - [Rust](https://www.rust-lang.org/tools/install) 1.95 以降 (Rust 2024 edition) |
| - [Bun](https://bun.sh/) 1.0 以降 |
|
|
| ### Windows |
|
|
| - Visual Studio C++ build tools |
| - [CUDA Toolkit 13.0](https://developer.nvidia.com/cuda-13-0-0-download-archive) (通常の CUDA ビルド用) |
| - [AMD HIP SDK](https://www.amd.com/en/developer/resources/rocm-hub/hip-sdk.html) (ZLUDA 用) |
|
|
| ### macOS |
|
|
| - Xcode Command Line Tools (`xcode-select --install`) |
|
|
| ### Linux |
|
|
| - ディストリビューション標準の C/C++ ツールチェーン (`build-essential` など) |
| - GPU アクセラレーションビルド向けの [LLVM](https://llvm.org/) 15 以降 |
|
|
| ## 依存を入れる |
|
|
| ```bash |
| bun install |
| ``` |
|
|
| Rust のツールチェーンは初回ビルド時に `rust-toolchain.toml` から自動解決されます。 |
|
|
| ## ローカルで起動する |
|
|
| ```bash |
| bun run dev |
| ``` |
|
|
| Tauri アプリが開発モードで起動し、バンドルされた UI に接続されます。 |
|
|
| ## リリースビルド |
|
|
| ```bash |
| bun run build |
| ``` |
|
|
| バイナリはプロファイルに応じて `target/release-with-debug/` または `target/release/` に出力されます。 |
|
|
| ## よく使うコマンド |
|
|
| Rust コマンドは必ず `bun cargo` 経由で実行してください。プラットフォーム別のフィーチャーフラグ (CUDA、Metal、Vulkan) が正しく渡ります。 |
|
|
| ```bash |
| bun cargo check # ワークスペースの型検査 |
| bun cargo clippy -- -D warnings # Lint |
| bun cargo fmt -- --check # フォーマットチェック |
| bun cargo test --workspace --tests # ユニット・統合テスト |
| ``` |
|
|
| UI や設定ファイルのフォーマットには [oxfmt](https://github.com/oxc-project/oxfmt) を使います。 |
|
|
| ```bash |
| bun run format |
| bun run format:check |
| ``` |
|
|
| UI のユニットテスト: |
|
|
| ```bash |
| bun run test:ui |
| ``` |
|
|
| ## ML の作業 |
|
|
| `koharu-ml` や `koharu-llm` を触るときは、マシンに合ったバックエンドを有効にします。 |
|
|
| ```bash |
| # Windows / Linux + NVIDIA |
| bun cargo test -p koharu-ml --features=cuda |
| |
| # macOS (Apple Silicon) |
| bun cargo test -p koharu-ml --features=metal |
| ``` |
|
|
| バックエンドの選択の詳細は [アクセラレーションとランタイム](../explanation/acceleration-and-runtime.md) を参照してください。 |
|
|
| ## ドキュメント |
|
|
| ドキュメントは `docs/en-US/`、`docs/ja-JP/`、`docs/zh-CN/`、`docs/pt-BR/` 以下にあります。触ったロケールをビルドしてください。 |
|
|
| ```bash |
| zensical build -f docs/zensical.toml -c |
| zensical build -f docs/zensical.ja-JP.toml |
| zensical build -f docs/zensical.zh-CN.toml |
| zensical build -f docs/zensical.pt-BR.toml |
| ``` |
|
|
| ページを追加したら、対応する `zensical*.toml` のナビゲーションにも登録します。 |
|
|
| ## PR を出す前に |
|
|
| 変更した範囲に対応するコマンドだけを走らせれば大丈夫です。全部を毎回流す必要はありません。 |
|
|
| - **Rust の変更** — `bun cargo fmt -- --check`、`bun cargo check`、`bun cargo clippy -- -D warnings`、`bun cargo test --workspace --tests` |
| - **UI の変更** — `bun run format`、`bun run test:ui` |
| - **デスクトップ統合** — `bun run build` |
| - **ドキュメント** — 編集したロケールをビルド |
|
|
| ## PR への期待 |
|
|
| - **PR ひとつにゴールひとつ** — バグ修正・リファクタ・新機能を混ぜない |
| - **既存パターンに合わせる** — ファイルにすでに規約があるなら新しい書き方を持ち込まない |
| - **変更内容と検証手順を書く** — UI ならスクリーンショットや短い動画、パイプライン系なら before / after |
| - **後方互換のための層を足さない** — 古いコードは置き換える。`v2/` フォルダも別名エイリアスも不要 |
| - **ついでのリファクタを入れない** — 別件で PR を分けてください |
|
|
| 小さく的を絞った PR のほうがレビューは速く進みます。 |
|
|
| ## 関連ページ |
|
|
| - [ソースからビルドする](../how-to/build-from-source.md) |
| - [GUI / Headless / MCP モードを使う](../how-to/run-gui-headless-and-mcp.md) |
| - [トラブルシューティング](../how-to/troubleshooting.md) |
|
|