Rustコア採用のオープンソース動画編集ツール「OpenCut」のローカル開発環境構築

OpenCutのアーキテクチャと技術スタック

OpenCutは、MITライセンスで提供されるオープンソースの動画編集プロジェクトです。最大の特徴は、Rustで記述されたコアエンジンがWeb、デスクトップ、モバイルのマルチプラットフォームを駆動するアーキテクチャにあります。本記事では、Moonツールチェーンを活用したローカル開発環境のセットアップと、現在のリポジトリ構造について技術的な観点から解説します。

ツールチェーンの導入とワークスペースの初期化

プロジェクトはMoonによるモノレポ構成で管理されています。まず、リポジトリのクローンとプロトコルツールの導入を行います。環境変数やスクリプトを整理して、セットアップを効率化します。

#!/usr/bin/env bash
set -e

REPOSITORY_URL="https://gitcode.com/GitHub_Trending/ap/OpenCut.git"
WORKSPACE_NAME="opencut-dev-env"

git clone "${REPOSITORY_URL}" "${WORKSPACE_NAME}"
cd "${WORKSPACE_NAME}"

# proto CLIのインストールとツールチェーンの同期
curl -fsSL https://moonrepo.dev/install/proto.sh | bash
proto use

proto use コマンドを実行すると、.prototools にロックされたバージョンに基づいて、Node.js、Bun、Rustなどの依存関係が自動的に解決されます。

Webフロントエンドの起動とルーティング構造

Webエディターの骨格を起動します。React 19とTailwind CSS 4、そしてshadcn/uiをベースとした50以上のコンポーネントが apps/web/src/components/ui/ 配下に既に整備されています。

Moonのタスク定義は以下のようなYAML構造で管理されており、フロントエンドとバックエンドの開発サーバーを個別に立ち上げることができます。

# .moon/tasks.yml におけるタスク定義の構造例
tasks:
  frontend:dev:
    command: 'vite'
    args: ['dev']
    env:
      VITE_PORT: '5173'
  backend:dev:
    command: 'wrangler'
    args: ['dev']
    env:
      API_PORT: '8787'

ルーティングはTanStack Routerによるファイルベースルーティングで構成されており、apps/web/src/routes/ 配下に配置されます。現在は index.tsx や editor.tsx にプレースホルダーが配置されていますが、今後のエディター機能はこのファイル構造にマウントされていきます。

Rustデスクトップクライアントのビルド要件

GPUIフレームワークを使用したデスクトップアプリケーションのビルド手順です。OSごとのシステム依存関係を解決する必要があります。

  • macOS: Xcodeコマンドラインツール(Metalレンダリング用)
  • Windows: 追加の依存関係なし
  • Linux: libvulkan1、Vulkanドライバ、libwayland-dev、libx11-xcb-dev、libxkbcommon-x11-dev、libfontconfig-dev、およびCツールチェーンとcmake

依存関係が揃ったら、以下のMakefileを介してRustバイナリのコンパイルと実行を行います。

# apps/desktop/Makefile
.PHONY: build check dev

dev:
	cargo run --bin opencut-desktop

check:
	cargo check --all-targets

build:
	cargo build --release

初回のビルドではGPUIのソースコンパイルが含まれるため、Webフロントエンドよりも大幅に長いビルド時間がかかります。

モノレポ構成と今後の技術ロードマップ

リポジトリは以下のようにクリーンに分割されています。

  • apps/web: TanStack Routerを使用したエディターフロントエンド
  • apps/api: Cloudflare Workers上で動作するバックエンドAPI
  • apps/desktop: RustとGPUIで構築されたデスクトップアプリケーション

今後の開発ロードマップには、Editor APIの公開、サードパーティプラグインシステム、Rustによる単一コードベースでの三端共用、AIエージェント向けのMCPサーバー、自動化およびバッチレンダリング用のヘッドレスモード、そしてエディター内スクリプトタブの実装が含まれています。

タグ: rust Moonrepo React19 TailwindCSS4 GPUI

10月22日 23:31 投稿