← Files Cecil-IA Labs FFmpegARCHIVED FILE

docs/development/platform-runtime-policy.md

2.26 KB · Sep 30, 2026 · 23:17 UTC

↓ Download file

# Platform & Runtime Support Policy

## 1. Node.js

### Minimum

```text
Node.js >= 22.0.0
```

### Test policy

- Node.js 22 LTS: compatibility line.
- Node.js 24 LTS: primary/recommended line for development and releases.
- Node.js 26 Current: forward-compatibility CI while it remains Current.

As of 2026-09-18, Node.js 24 and 22 are LTS lines and Node.js 26 is Current.

## 2. FFmpeg

### Minimum supported family

```text
FFmpeg >= 6.1
FFprobe from the same installation/family
```

### Recommended

Use a currently maintained FFmpeg release. As of 2026-09-18, FFmpeg 9.0.1 is the latest stable release listed by the FFmpeg project.

### Compatibility test matrix

The project should exercise representative tests against:

- 6.1.x — minimum compatibility boundary;
- 7.1.x — compatibility line;
- 8.1.x — compatibility line;
- 9.x — primary/current line.

Specific filters, encoders and hardware acceleration are **build capabilities**, not assumptions derived only from version. Commands must query capabilities and fail with `E_CAPABILITY_*` when required functionality is missing.

## 3. Operating systems

| Platform | v0.x tier | v1.0 target | Notes |
|---|---|---|---|
| Linux x64 | Tier 1 | Tier 1 | Primary development target |
| Linux arm64 | Tier 1 | Tier 1 | No architecture-specific shell assumptions |
| macOS arm64 | Tier 2 | Tier 1 | VideoToolbox capabilities vary |
| macOS x64 | Tier 2 | Tier 1 | Best-effort until CI coverage is complete |
| Windows x64 | Tier 2 | Tier 1 | Must run without Bash/Unix path assumptions |
| Windows arm64 | Experimental | Tier 2 | Depends on Node/FFmpeg distribution availability |

## 4. Platform-neutral rules

- Use Node filesystem/path APIs.
- Do not invoke `bash`, `awk`, `find`, `rm`, `touch`, `sed`, or `eval` for core behavior.
- Use argument arrays with shell disabled.
- Device capture is platform-specific and must live behind capture adapters.
- Package-manager installation is platform-specific and requires explicit user authorization.

## 5. External binaries

Core dependency:

```text
ffmpeg
ffprobe
```

Additional binaries such as `webpmux` are **not** mandatory dependencies. Operations should prefer FFmpeg-native functionality when equivalent and robust; otherwise they must declare an optional capability/dependency explicitly.

SHA-256: 8b54492de6be84d9ceabfffcbf2bb4fd50768b918ed7f2e614f9bd7820144be2