# @camera.ui/go2rtc

Go2RTC binary downloader for camera.ui - downloads the camera.ui-optimized version with enhanced streaming capabilities.

## Installation

```bash
npm install @camera.ui/go2rtc
```

The Go2RTC binary will be automatically downloaded during installation.

## Usage

```typescript
import { go2rtcPath, isGo2rtcAvailable } from '@camera.ui/go2rtc';

// Get Go2RTC binary path
const go2rtc = go2rtcPath();
console.log('Go2RTC path:', go2rtc);

// Check if Go2RTC is available
if (isGo2rtcAvailable()) {
  console.log('Go2RTC is ready to use');
}
```

## Platform Support

**Supported Platforms:**
- **Linux** - x64, ARM64, ARMv6, ARMv7, x86, MIPSEL
- **Windows** - x64, ARM64, x86
- **macOS** - Intel (x64), Apple Silicon (ARM64)
- **FreeBSD** - x64, ARM64

## Examples

### Basic Usage
```typescript
import { go2rtcPath } from '@camera.ui/go2rtc';
import { spawn } from 'child_process';

const go2rtc = spawn(go2rtcPath(), ['-config', 'go2rtc.yaml']);
```

### Check Availability
```typescript
import { isGo2rtcAvailable, go2rtcPath } from '@camera.ui/go2rtc';

if (!isGo2rtcAvailable()) {
  console.error('Go2RTC not found');
  process.exit(1);
}

console.log('Using Go2RTC at:', go2rtcPath());
```

## Cross-Platform Installation

```bash
# Force specific platform/architecture
npm_config_os=linux npm_config_cpu=arm64 npm install
```

**Examples:**
```bash
npm_config_os=linux npm_config_cpu=x64     # Linux x64
npm_config_os=linux npm_config_cpu=arm64   # Linux ARM64
npm_config_os=win32 npm_config_cpu=x64     # Windows x64
npm_config_os=darwin npm_config_cpu=arm64  # Apple Silicon
```

## Installation Process

The installer automatically:
1. Detects your platform and architecture
2. Downloads the appropriate binary from camera.ui Go2RTC releases
3. Extracts and makes executable (Unix systems)
4. Cleans up temporary files

### Installation Log
```
Detected platform: linux / arm64
Downloading Go2Rtc v1.9.9-cui.18...
Extracting binary...
Making executable...
Done!
```

## Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

## License

MIT

---

*Part of the camera.ui ecosystem - A comprehensive camera management solution.*