@alloy-framework/webrtc 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,35 +1,35 @@
1
- # ─────────────────────────────────────────────
2
- # 🎨 Alloy WebRTC Manager — 환경 설정 파일
3
- # 이 파일을 .env로 복사하여 사용하세요:
4
- # cp env.manager.example .env
5
- # ─────────────────────────────────────────────
6
-
7
- APP_NAMESPACE=webrtc-manager
8
- HOST=0.0.0.0
9
- PORT=9002
10
- TCP_PORT=9001
11
-
12
- # ─── MongoDB (MAIN) ───
13
- DB_MAIN_TYPE=mongo
14
- DB_MAIN_HOST=localhost
15
- DB_MAIN_PORT=27017
16
- DB_MAIN_USER=
17
- DB_MAIN_PASSWORD=
18
- DB_MAIN_DATABASE=alloy
19
- DB_MAIN_LOGGING=true
20
- # 또는 직접 URL 지정:
21
- # DB_MAIN_URL=mongodb://user:pass@host:port/database
22
-
23
- # ─── Redis (세션 공유) ───
24
- REDIS_SESSION_URL=redis://:your_password@localhost:6379
25
- SESSION_PREFIX=alloy_starter_sess:
26
- SESSION_COOKIE_NAME=alloy_starter_sess
27
-
28
- # ─── NATS (스트림 이벤트) ───
29
- NATS_URL=nats://localhost:4222
30
- NATS_PREFIX=alloy.stream
31
-
32
- # ─── WebRTC 토큰 인증 ───
33
- WEBRTC_TOKEN_AUTH=true
34
- WEBRTC_TOKEN_SECRET=your-32-byte-secret-key-here!!!!!
35
- WEBRTC_TOKEN_EXPIRY=3600
1
+ # ─────────────────────────────────────────────
2
+ # 🎨 Alloy WebRTC Manager — 환경 설정 파일
3
+ # 이 파일을 .env로 복사하여 사용하세요:
4
+ # cp env.manager.example .env
5
+ # ─────────────────────────────────────────────
6
+
7
+ APP_NAMESPACE=webrtc-manager
8
+ HOST=0.0.0.0
9
+ PORT=9002
10
+ TCP_PORT=9001
11
+
12
+ # ─── MongoDB (MAIN) ───
13
+ DB_MAIN_TYPE=mongo
14
+ DB_MAIN_HOST=localhost
15
+ DB_MAIN_PORT=27017
16
+ DB_MAIN_USER=
17
+ DB_MAIN_PASSWORD=
18
+ DB_MAIN_DATABASE=alloy
19
+ DB_MAIN_LOGGING=true
20
+ # 또는 직접 URL 지정:
21
+ # DB_MAIN_URL=mongodb://user:pass@host:port/database
22
+
23
+ # ─── Redis (세션 공유) ───
24
+ REDIS_SESSION_URL=redis://:your_password@localhost:6379
25
+ SESSION_PREFIX=alloy_starter_sess:
26
+ SESSION_COOKIE_NAME=alloy_starter_sess
27
+
28
+ # ─── NATS (스트림 이벤트) ───
29
+ NATS_URL=nats://localhost:4222
30
+ NATS_PREFIX=alloy.stream
31
+
32
+ # ─── WebRTC 토큰 인증 ───
33
+ WEBRTC_TOKEN_AUTH=true
34
+ WEBRTC_TOKEN_SECRET=your-32-byte-secret-key-here!!!!!
35
+ WEBRTC_TOKEN_EXPIRY=3600
@@ -1,34 +1,34 @@
1
- # ─────────────────────────────────────────────
2
- # 👷 Alloy WebRTC Worker — 환경 설정 파일
3
- # 이 파일을 .env로 복사하여 사용하세요:
4
- # cp env.worker.example .env
5
- # ─────────────────────────────────────────────
6
-
7
- APP_NAMESPACE=WEBRTC_WORKER
8
- RUST_LOG=info
9
-
10
- # ─── Manager 연결 ───
11
- MANAGER_HOST=127.0.0.1
12
- MANAGER_PORT=9001
13
-
14
- # ─── Worker 포트 설정 ───
15
- WORKER_INGEST_PORT=7001
16
- WORKER_WEBRTC_PORT=50002
17
- WORKER_IP=127.0.0.1
18
- WORKER_WHIP_PORT=7777
19
-
20
- # ─── WebRTC ───
21
- STUN_SERVER=stun:stun.l.google.com:19302
22
- MAX_SESSIONS=100
23
-
24
- # ─── NATS ───
25
- NATS_HOST=localhost
26
- NATS_PORT=4222
27
- NATS_USER=admin
28
- NATS_PASSWORD=your_nats_password
29
- NATS_PREFIX=alloy
30
-
31
- # ─── WebRTC 토큰 인증 ───
32
- WEBRTC_TOKEN_AUTH=true
33
- WEBRTC_TOKEN_SECRET=your-32-byte-secret-key-here!!!!!
34
- WEBRTC_TOKEN_EXPIRY=3600
1
+ # ─────────────────────────────────────────────
2
+ # 👷 Alloy WebRTC Worker — 환경 설정 파일
3
+ # 이 파일을 .env로 복사하여 사용하세요:
4
+ # cp env.worker.example .env
5
+ # ─────────────────────────────────────────────
6
+
7
+ APP_NAMESPACE=WEBRTC_WORKER
8
+ RUST_LOG=info
9
+
10
+ # ─── Manager 연결 ───
11
+ MANAGER_HOST=127.0.0.1
12
+ MANAGER_PORT=9001
13
+
14
+ # ─── Worker 포트 설정 ───
15
+ WORKER_INGEST_PORT=7001
16
+ WORKER_WEBRTC_PORT=50002
17
+ WORKER_IP=127.0.0.1
18
+ WORKER_WHIP_PORT=7777
19
+
20
+ # ─── WebRTC ───
21
+ STUN_SERVER=stun:stun.l.google.com:19302
22
+ MAX_SESSIONS=100
23
+
24
+ # ─── NATS ───
25
+ NATS_HOST=localhost
26
+ NATS_PORT=4222
27
+ NATS_USER=admin
28
+ NATS_PASSWORD=your_nats_password
29
+ NATS_PREFIX=alloy
30
+
31
+ # ─── WebRTC 토큰 인증 ───
32
+ WEBRTC_TOKEN_AUTH=true
33
+ WEBRTC_TOKEN_SECRET=your-32-byte-secret-key-here!!!!!
34
+ WEBRTC_TOKEN_EXPIRY=3600
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
- {
2
- "name": "@alloy-framework/webrtc",
3
- "version": "0.1.6",
4
- "description": "Alloy WebRTC SFU alloy-manager (Control Plane) + alloy-worker (Media Plane) 바이너리 로더",
5
- "bin": {
6
- "alloy-manager": "./run-manager.js",
7
- "alloy-worker": "./run-worker.js"
8
- },
9
- "files": [
10
- "run-manager.js",
11
- "run-worker.js",
12
- "env.manager.example",
13
- "env.worker.example"
14
- ],
15
- "optionalDependencies": {
16
- "@alloy-framework/webrtc-darwin-arm64": "0.1.6",
17
- "@alloy-framework/webrtc-linux-x64-gnu": "0.1.6",
18
- "@alloy-framework/webrtc-win32-x64-msvc": "0.1.6"
19
- },
20
- "license": "MIT",
21
- "repository": {
22
- "type": "git",
23
- "url": "https://github.com/saytohenry/alloy-framework.git"
24
- },
25
- "engines": {
26
- "node": ">=18.0.0"
27
- }
28
- }
1
+ {
2
+ "name": "@alloy-framework/webrtc",
3
+ "version": "0.1.7",
4
+ "description": "Alloy WebRTC SFU ??alloy-manager (Control Plane) + alloy-worker (Media Plane) binary loader",
5
+ "bin": {
6
+ "alloy-manager": "./run-manager.js",
7
+ "alloy-worker": "./run-worker.js"
8
+ },
9
+ "files": [
10
+ "run-manager.js",
11
+ "run-worker.js",
12
+ "env.manager.example",
13
+ "env.worker.example"
14
+ ],
15
+ "optionalDependencies": {
16
+ "@alloy-framework/webrtc-darwin-arm64": "0.1.7",
17
+ "@alloy-framework/webrtc-linux-x64-gnu": "0.1.7",
18
+ "@alloy-framework/webrtc-win32-x64-msvc": "0.1.7"
19
+ },
20
+ "license": "MIT",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/saytohenry/alloy-framework.git"
24
+ },
25
+ "engines": {
26
+ "node": ">=18.0.0"
27
+ }
28
+ }
package/run-manager.js CHANGED
@@ -1,76 +1,76 @@
1
- #!/usr/bin/env node
2
- /**
3
- * 🚀 alloy-manager 바이너리 런처
4
- *
5
- * 현재 플랫폼(OS + CPU 아키텍처)을 감지하여
6
- * 적절한 alloy-manager 네이티브 바이너리를 실행합니다.
7
- *
8
- * 지원 플랫폼:
9
- * - macOS ARM64 (Apple Silicon)
10
- * - Linux x64 (Ubuntu/Debian glibc)
11
- * - Windows x64 (MSVC)
12
- *
13
- * @example
14
- * npx alloy-manager
15
- * // 또는 직접 실행
16
- * node run-manager.js
17
- */
18
-
19
- const { execFileSync } = require('child_process');
20
- const { platform, arch } = require('process');
21
- const path = require('path');
22
-
23
- /**
24
- * 플랫폼별 npm 패키지 매핑
25
- * key: `${os}-${cpu}` 형식
26
- * value: [패키지명, 바이너리 파일명]
27
- */
28
- const PLATFORM_MAP = {
29
- 'darwin-arm64': ['@alloy-framework/webrtc-darwin-arm64', 'alloy-manager'],
30
- 'linux-x64': ['@alloy-framework/webrtc-linux-x64-gnu', 'alloy-manager'],
31
- 'win32-x64': ['@alloy-framework/webrtc-win32-x64-msvc', 'alloy-manager.exe'],
32
- };
33
-
34
- const key = `${platform}-${arch}`;
35
- const entry = PLATFORM_MAP[key];
36
-
37
- if (!entry) {
38
- console.error(
39
- `[Alloy WebRTC] 지원하지 않는 플랫폼: ${platform}-${arch}\n` +
40
- `지원 플랫폼: ${Object.keys(PLATFORM_MAP).join(', ')}\n` +
41
- `문의: https://github.com/saytohenry/alloy-framework/issues`
42
- );
43
- process.exit(1);
44
- }
45
-
46
- const [pkgName, binaryName] = entry;
47
-
48
- // 바이너리 경로 탐색 (require.resolve로 설치된 패키지 위치 확인)
49
- let binaryPath;
50
- try {
51
- const pkgDir = path.dirname(require.resolve(`${pkgName}/package.json`));
52
- binaryPath = path.join(pkgDir, binaryName);
53
- } catch (e) {
54
- console.error(
55
- `[Alloy WebRTC] 플랫폼 바이너리 패키지를 찾을 수 없습니다.\n` +
56
- `필요한 패키지: ${pkgName}\n` +
57
- `설치: npm install ${pkgName}\n\n` +
58
- `원본 에러: ${e.message}`
59
- );
60
- process.exit(1);
61
- }
62
-
63
- // 바이너리 실행 (stdin/stdout/stderr 모두 상속)
64
- try {
65
- execFileSync(binaryPath, process.argv.slice(2), {
66
- stdio: 'inherit',
67
- env: process.env,
68
- });
69
- } catch (e) {
70
- // execFileSync는 프로세스가 0이 아닌 코드로 종료하면 에러를 던짐
71
- if (e.status !== undefined) {
72
- process.exit(e.status);
73
- }
74
- console.error(`[Alloy WebRTC] alloy-manager 실행 실패: ${e.message}`);
75
- process.exit(1);
76
- }
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 🚀 alloy-manager 바이너리 런처
4
+ *
5
+ * 현재 플랫폼(OS + CPU 아키텍처)을 감지하여
6
+ * 적절한 alloy-manager 네이티브 바이너리를 실행합니다.
7
+ *
8
+ * 지원 플랫폼:
9
+ * - macOS ARM64 (Apple Silicon)
10
+ * - Linux x64 (Ubuntu/Debian glibc)
11
+ * - Windows x64 (MSVC)
12
+ *
13
+ * @example
14
+ * npx alloy-manager
15
+ * // 또는 직접 실행
16
+ * node run-manager.js
17
+ */
18
+
19
+ const { execFileSync } = require('child_process');
20
+ const { platform, arch } = require('process');
21
+ const path = require('path');
22
+
23
+ /**
24
+ * 플랫폼별 npm 패키지 매핑
25
+ * key: `${os}-${cpu}` 형식
26
+ * value: [패키지명, 바이너리 파일명]
27
+ */
28
+ const PLATFORM_MAP = {
29
+ 'darwin-arm64': ['@alloy-framework/webrtc-darwin-arm64', 'alloy-manager'],
30
+ 'linux-x64': ['@alloy-framework/webrtc-linux-x64-gnu', 'alloy-manager'],
31
+ 'win32-x64': ['@alloy-framework/webrtc-win32-x64-msvc', 'alloy-manager.exe'],
32
+ };
33
+
34
+ const key = `${platform}-${arch}`;
35
+ const entry = PLATFORM_MAP[key];
36
+
37
+ if (!entry) {
38
+ console.error(
39
+ `[Alloy WebRTC] 지원하지 않는 플랫폼: ${platform}-${arch}\n` +
40
+ `지원 플랫폼: ${Object.keys(PLATFORM_MAP).join(', ')}\n` +
41
+ `문의: https://github.com/saytohenry/alloy-framework/issues`
42
+ );
43
+ process.exit(1);
44
+ }
45
+
46
+ const [pkgName, binaryName] = entry;
47
+
48
+ // 바이너리 경로 탐색 (require.resolve로 설치된 패키지 위치 확인)
49
+ let binaryPath;
50
+ try {
51
+ const pkgDir = path.dirname(require.resolve(`${pkgName}/package.json`));
52
+ binaryPath = path.join(pkgDir, binaryName);
53
+ } catch (e) {
54
+ console.error(
55
+ `[Alloy WebRTC] 플랫폼 바이너리 패키지를 찾을 수 없습니다.\n` +
56
+ `필요한 패키지: ${pkgName}\n` +
57
+ `설치: npm install ${pkgName}\n\n` +
58
+ `원본 에러: ${e.message}`
59
+ );
60
+ process.exit(1);
61
+ }
62
+
63
+ // 바이너리 실행 (stdin/stdout/stderr 모두 상속)
64
+ try {
65
+ execFileSync(binaryPath, process.argv.slice(2), {
66
+ stdio: 'inherit',
67
+ env: process.env,
68
+ });
69
+ } catch (e) {
70
+ // execFileSync는 프로세스가 0이 아닌 코드로 종료하면 에러를 던짐
71
+ if (e.status !== undefined) {
72
+ process.exit(e.status);
73
+ }
74
+ console.error(`[Alloy WebRTC] alloy-manager 실행 실패: ${e.message}`);
75
+ process.exit(1);
76
+ }
package/run-worker.js CHANGED
@@ -1,76 +1,76 @@
1
- #!/usr/bin/env node
2
- /**
3
- * 🚀 alloy-worker 바이너리 런처
4
- *
5
- * 현재 플랫폼(OS + CPU 아키텍처)을 감지하여
6
- * 적절한 alloy-worker 네이티브 바이너리를 실행합니다.
7
- *
8
- * 지원 플랫폼:
9
- * - macOS ARM64 (Apple Silicon)
10
- * - Linux x64 (Ubuntu/Debian glibc)
11
- * - Windows x64 (MSVC)
12
- *
13
- * @example
14
- * npx alloy-worker
15
- * // 또는 직접 실행
16
- * node run-worker.js
17
- */
18
-
19
- const { execFileSync } = require('child_process');
20
- const { platform, arch } = require('process');
21
- const path = require('path');
22
-
23
- /**
24
- * 플랫폼별 npm 패키지 매핑
25
- * key: `${os}-${cpu}` 형식
26
- * value: [패키지명, 바이너리 파일명]
27
- */
28
- const PLATFORM_MAP = {
29
- 'darwin-arm64': ['@alloy-framework/webrtc-darwin-arm64', 'alloy-worker'],
30
- 'linux-x64': ['@alloy-framework/webrtc-linux-x64-gnu', 'alloy-worker'],
31
- 'win32-x64': ['@alloy-framework/webrtc-win32-x64-msvc', 'alloy-worker.exe'],
32
- };
33
-
34
- const key = `${platform}-${arch}`;
35
- const entry = PLATFORM_MAP[key];
36
-
37
- if (!entry) {
38
- console.error(
39
- `[Alloy WebRTC] 지원하지 않는 플랫폼: ${platform}-${arch}\n` +
40
- `지원 플랫폼: ${Object.keys(PLATFORM_MAP).join(', ')}\n` +
41
- `문의: https://github.com/saytohenry/alloy-framework/issues`
42
- );
43
- process.exit(1);
44
- }
45
-
46
- const [pkgName, binaryName] = entry;
47
-
48
- // 바이너리 경로 탐색 (require.resolve로 설치된 패키지 위치 확인)
49
- let binaryPath;
50
- try {
51
- const pkgDir = path.dirname(require.resolve(`${pkgName}/package.json`));
52
- binaryPath = path.join(pkgDir, binaryName);
53
- } catch (e) {
54
- console.error(
55
- `[Alloy WebRTC] 플랫폼 바이너리 패키지를 찾을 수 없습니다.\n` +
56
- `필요한 패키지: ${pkgName}\n` +
57
- `설치: npm install ${pkgName}\n\n` +
58
- `원본 에러: ${e.message}`
59
- );
60
- process.exit(1);
61
- }
62
-
63
- // 바이너리 실행 (stdin/stdout/stderr 모두 상속)
64
- try {
65
- execFileSync(binaryPath, process.argv.slice(2), {
66
- stdio: 'inherit',
67
- env: process.env,
68
- });
69
- } catch (e) {
70
- // execFileSync는 프로세스가 0이 아닌 코드로 종료하면 에러를 던짐
71
- if (e.status !== undefined) {
72
- process.exit(e.status);
73
- }
74
- console.error(`[Alloy WebRTC] alloy-worker 실행 실패: ${e.message}`);
75
- process.exit(1);
76
- }
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 🚀 alloy-worker 바이너리 런처
4
+ *
5
+ * 현재 플랫폼(OS + CPU 아키텍처)을 감지하여
6
+ * 적절한 alloy-worker 네이티브 바이너리를 실행합니다.
7
+ *
8
+ * 지원 플랫폼:
9
+ * - macOS ARM64 (Apple Silicon)
10
+ * - Linux x64 (Ubuntu/Debian glibc)
11
+ * - Windows x64 (MSVC)
12
+ *
13
+ * @example
14
+ * npx alloy-worker
15
+ * // 또는 직접 실행
16
+ * node run-worker.js
17
+ */
18
+
19
+ const { execFileSync } = require('child_process');
20
+ const { platform, arch } = require('process');
21
+ const path = require('path');
22
+
23
+ /**
24
+ * 플랫폼별 npm 패키지 매핑
25
+ * key: `${os}-${cpu}` 형식
26
+ * value: [패키지명, 바이너리 파일명]
27
+ */
28
+ const PLATFORM_MAP = {
29
+ 'darwin-arm64': ['@alloy-framework/webrtc-darwin-arm64', 'alloy-worker'],
30
+ 'linux-x64': ['@alloy-framework/webrtc-linux-x64-gnu', 'alloy-worker'],
31
+ 'win32-x64': ['@alloy-framework/webrtc-win32-x64-msvc', 'alloy-worker.exe'],
32
+ };
33
+
34
+ const key = `${platform}-${arch}`;
35
+ const entry = PLATFORM_MAP[key];
36
+
37
+ if (!entry) {
38
+ console.error(
39
+ `[Alloy WebRTC] 지원하지 않는 플랫폼: ${platform}-${arch}\n` +
40
+ `지원 플랫폼: ${Object.keys(PLATFORM_MAP).join(', ')}\n` +
41
+ `문의: https://github.com/saytohenry/alloy-framework/issues`
42
+ );
43
+ process.exit(1);
44
+ }
45
+
46
+ const [pkgName, binaryName] = entry;
47
+
48
+ // 바이너리 경로 탐색 (require.resolve로 설치된 패키지 위치 확인)
49
+ let binaryPath;
50
+ try {
51
+ const pkgDir = path.dirname(require.resolve(`${pkgName}/package.json`));
52
+ binaryPath = path.join(pkgDir, binaryName);
53
+ } catch (e) {
54
+ console.error(
55
+ `[Alloy WebRTC] 플랫폼 바이너리 패키지를 찾을 수 없습니다.\n` +
56
+ `필요한 패키지: ${pkgName}\n` +
57
+ `설치: npm install ${pkgName}\n\n` +
58
+ `원본 에러: ${e.message}`
59
+ );
60
+ process.exit(1);
61
+ }
62
+
63
+ // 바이너리 실행 (stdin/stdout/stderr 모두 상속)
64
+ try {
65
+ execFileSync(binaryPath, process.argv.slice(2), {
66
+ stdio: 'inherit',
67
+ env: process.env,
68
+ });
69
+ } catch (e) {
70
+ // execFileSync는 프로세스가 0이 아닌 코드로 종료하면 에러를 던짐
71
+ if (e.status !== undefined) {
72
+ process.exit(e.status);
73
+ }
74
+ console.error(`[Alloy WebRTC] alloy-worker 실행 실패: ${e.message}`);
75
+ process.exit(1);
76
+ }