https://github.com/gameframex/gameframex-upm-registry
Cloudflare Worker that provides Unity Package Manager registry APIs (search, all, packument) for GameFrameX packages hosted on cnb.cool
https://github.com/gameframex/gameframex-upm-registry
Last synced: about 2 months ago
JSON representation
Cloudflare Worker that provides Unity Package Manager registry APIs (search, all, packument) for GameFrameX packages hosted on cnb.cool
- Host: GitHub
- URL: https://github.com/gameframex/gameframex-upm-registry
- Owner: GameFrameX
- License: mit
- Created: 2026-05-25T11:36:36.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-25T12:47:50.000Z (2 months ago)
- Last Synced: 2026-05-25T13:31:01.752Z (2 months ago)
- Language: TypeScript
- Size: 34.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ja.md
- License: LICENSE
Awesome Lists containing this project
README

# GameFrameX UPM Registry
[](https://github.com/GameFrameX/gameframex-upm-registry/releases)
[](LICENSE)
**GameFrameX パッケージ向け Unity Package Manager レジストリ API を提供する Cloudflare Worker。**
---
🌐 **言語**: [English](README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | **日本語** | [한국어](README.ko.md)
---
## プロジェクト概要
[cnb.cool](https://cnb.cool/GameFrameX/npm) にホストされている GameFrameX パッケージ向けに、Unity Package Manager レジストリ API を提供する Cloudflare Worker です。
## なぜ必要か
Unity の Package Manager は「My Registries」にパッケージを表示するために `/-/v1/search` と `/-/all` エンドポイントを必要とします。cnb.cool の npm レジストリはこれらを提供していないため、この Worker がその隙間を埋めます:
- パッケージの発見とプロトコル互換性:Worker が処理
- パッケージファイルのダウンロード:引き続き `npm.cnb.cool` が直接提供
## アーキテクチャ
| エンドポイント | 説明 |
|---|---|
| `GET /` | アダプタ設定とサンプルエンドポイント |
| `GET /-/ping` | ヘルスチェック |
| `GET /-/v1/search?text=...&size=20&from=0` | パッケージ検索 |
| `GET /-/all` | 全パッケージの packument マップ |
| `GET /` | 単一パッケージの packument |
| `GET /-/package//dist-tags` | パッケージの dist-tags |
すべての `dist.tarball` URL は `npm.cnb.cool` を指すため、ダウンロードトラフィックは Worker を経由しません。
## クイックスタート
Unity プロジェクトの `Packages/manifest.json` を編集し、`scopedRegistries` セクションを追加してください:
```json
{
"scopedRegistries": [
{
"name": "GameFrameX",
"url": "https://gameframex.upm.alianblank.uk",
"scopes": [
"com.gameframex"
]
}
],
"dependencies": {
"com.gameframex.unity": "1.10.1"
}
}
```
> `scopes` は、どのパッケージをこのレジストリから解決するかを制御します。`com.gameframex` で始まるパッケージのみがこのレジストリから取得されます。追加の GameFrameX パッケージを使用する場合は、スコープを追加してください。
## プロジェクト構成
```text
src/
adapter.ts # UPM プロトコルアダプタ
cache.ts # インメモリキャッシュ層
cnb.ts # CNB レジストリ API クライアント
config.ts # 環境設定
index.ts # リクエストルーター
types.ts # 共有型
```
## 設定
すべての設定は `wrangler.toml` の `[vars]` にあります:
| 変数 | デフォルト | 説明 |
|---|---|---|
| `CNB_ARTIFACT_PAGE_URL` | — | パッケージ一覧取得用 CNB アーティファクトページ URL |
| `CNB_NPM_REGISTRY_URL` | — | packument データ取得用 CNB npm レジストリ URL |
| `REGISTRY_NAME` | `GameFrameX UPM Registry` | Unity での表示名 |
| `REGISTRY_SCOPE` | `com.gameframex` | パッケージスコープフィルタ |
| `CACHE_TTL_SECONDS` | `300` | キャッシュ TTL(秒) |
| `SEARCH_MAX_SIZE` | `50` | 検索結果の最大数 |
| `CATALOG_CONCURRENCY` | `6` | 並行取得の同時実行数 |
## デプロイ
`main` ブランチへの push で GitHub Actions による自動デプロイが実行されます。
手動デプロイには Node.js 22+ が必要です:
```bash
npm install
npx wrangler login
npx wrangler deploy
```
## ローカル開発
```bash
npm install
cp .dev.vars.example .dev.vars
npm run dev
```
## ライセンス
MIT