CompressO
動画・画像をローカルで圧縮する Tauri デスクトップアプリ(解説元: repos/compressO)
位置づけ
CompressO(読みは Espresso に近い)は、動画・画像をオフラインで小さくするための無料オープンソースアプリ。フロントは React + Vite、シェルは Tauri 2、実際のエンコードは FFmpeg・pngquant・jpegoptim・gifski などプラットフォーム別のスタンドアロンバイナリが担当する(codeforreal1/compressO)。
Tauri 2デスクトップ
React 18UI
Offline通常時ネット不要
AGPL 3.0ライセンス
アプリ本体からの通信は原則なく、組み込みアップデート用途を除く。トリム・分割・バッチ・字幕・メタデータなど README 上の機能はフロント+ Tauri コマンド+ 外部ツールの組み合わせで実現している。
レイヤ構造
UI は TanStack Router でルート分割し、状態は Valtio。ネイティブ処理は Rust 側(src-tauri)に集約し、TypeScript から invoke で呼び出す。圧縮パイプラインは FFmpeg 等の sidecar を Rust が起動・制御するイメージ。
flowchart TD
subgraph ui [フロントエンド]
R[React + Vite]
TR[TanStack Router]
V[Valtio state]
end
subgraph shell [シェル]
T[Tauri 2]
end
subgraph native [ネイティブ]
RS[Rust core / commands]
end
subgraph tools [外部バイナリ]
F[FFmpeg / ffprobe]
P[pngquant / jpegoptim / gifski 等]
end
R --> T
TR --> R
V --> R
T --> RS
RS --> F
RS --> P
主要依存
| 領域 | 技術 | メモ |
|---|---|---|
| デスクトップ | Tauri 2 · Rust 2021 | capabilities / plugins(dialog, fs, shell, updater 等) |
| フロント | React 18 · Vite 6 · TypeScript | HeroUI · Framer Motion · Tailwind 3 |
| ルーティング | TanStack Router | src/routes/ ファイルベース |
| 状態 | Valtio | proxy / useSnapshot |
| 品質 | Biome | lint-staged · Husky |
| 圧縮エンジン | FFmpeg 等 | バンドル third-party、LICENSES/ 参照 |
よく使うコマンド
前提: Rust と Node.js、パッケージマネージャは pnpm(package.json)。
# Tauri 開発(アプリ全体)
pnpm tauri:dev
# フロントのみ(ポート 3001)
pnpm vite:dev
# 本番ビルド
pnpm tauri:build
# TS 型チェック
pnpm tsc:check
# Rust(src-tauri)
cd src-tauri && cargo clippy
インストーラ名(README より)
| ファイル例 | 対象 |
|---|---|
CompressO_amd64.deb |
Debian 系(Ubuntu 等) |
CompressO_amd64.AppImage |
Linux 汎用 |
CompressO_aarch64.dmg |
Apple Silicon Mac |
CompressO_x64.dmg |
Intel Mac |
CompressO_x64.msi |
Windows 64bit |
Homebrew(macOS): brew install --cask codeforreal1/tap/compresso — 配布物の取得は Releases を参照。
macOS: 開発者未検証・未 notarize のため Gatekeeper 警告が出る場合がある。README では
xattr -cr /Applications/CompressO.app や Homebrew 利用が案内されている。
プロジェクトは AGPL 3.0。バンドルソフトの帰属は THIRD_PARTY_NOTICES.md を参照。