LightFile NextLightFile Next

機能比較表

旧LightFileとLightFile Shotの機能を詳細に比較

旧LightFile(v6.0.0未満)と新しいLightFile Shotの機能を詳細に比較します。

概要

項目旧LightFile (< v6.0.0)LightFile Shot (≥ v6.0.0)
実行ファイル名lightfilelightfile-shot
実装言語Node.jsGo
主な用途バッチ処理全般ワンタイム処理
対応環境ローカル, リモートFSローカルのみ
処理履歴管理KVSなし

LightFile Shotはローカルファイルシステム専用のツールとして設計されています。リモートファイルシステムが必要な場合は、LightFile Batchを使用してください。

基本機能

画像最適化

機能旧LightFileLightFile Shot備考
JPEG最適化変更なし
PNG最適化✅ (v4+)変更なし
GIF最適化非対応
WebP最適化非対応
品質設定(3段階)low/medium/high
JPEG個別品質設定--jpeg-quality--jpeg-quality変更なし
PNG個別品質設定--png-quality--png-quality変更なし
プログレッシブJPEG自動適用
メタデータ最適化自動適用

画像最適化のコア機能に変更はありません。品質設定や個別の画質調整も引き続き利用できます。

処理モード

機能旧LightFileLightFile Shot備考
上書きモード元ファイルを最適化
複製モード新機能別ディレクトリに保存
ドライランモード--dry-run--dry-run, -n短縮形追加
並列処理✅ デフォルト--concurrency N, -j N明示的に指定
順次処理--serial✅ デフォルトデフォルト動作が変更

複製モードはLightFile Shotの新機能です。元ファイルを保持したまま、最適化済みファイルを別のディレクトリに出力できます。

複製モードの例:

# ディレクトリを別ディレクトリに出力
lightfile-shot /path/to/images /path/to/optimized

# 単一ファイルを別ファイルに出力
lightfile-shot image.jpg optimized.jpg

対応ファイルシステム

ファイルシステム旧LightFileLightFile Shot備考
ローカルファイルシステム変更なし
FTP非対応
FTPS(明示的TLS)非対応
SFTP非対応
WebDAV非対応
S3(AWS)非対応
S3互換ストレージ非対応

LightFile Shotはローカルファイルシステムのみに対応しています。リモートファイルシステムが必要な場合は、LightFile Batchへの移行を検討してください。

ファイルフィルタリング

機能旧LightFileLightFile Shot備考
ファイルサイズ(最小)--file-size--min-sizeオプション名変更
ファイルサイズ(最大)--file-size--max-sizeオプション名変更
拡張子フィルタ--ext--ext変更なし
Glob(include)--only--includeオプション名変更
Glob(exclude)--exclude--exclude変更なし
更新日時(新しいファイル)--recent非対応
更新日時(古いファイル)非対応
処理件数制限非対応

更新日時フィルタや処理件数制限が必要な場合は、findコマンドなどと組み合わせるか、LightFile Batchを使用してください。

処理済みファイルの管理

機能旧LightFileLightFile Shot備考
KVS(処理済み記録)非対応
メモリディレクトリ非対応
処理済みスキップ毎回処理
インデックスファイル非対応

LightFile Shotは処理済みファイルを記録しません。実行するたびにすべてのファイルを処理対象として評価します。

ただし、最適化の必要がないファイル(すでに最適化済み)は自動的にスキップされます。

バックアップ機能

機能旧LightFileLightFile Shot備考
自動バックアップ(ローカル)非対応
自動バックアップ(S3)非対応
バックアップディレクトリ指定非対応
バックアップ無効化-機能なし

LightFile Shotにはバックアップ機能がありません。元ファイルを保持したい場合は、複製モードを使用してください。

# 複製モードで元ファイルを保持
lightfile-shot /path/to/images /path/to/optimized

ログ・進捗表示

機能旧LightFileLightFile Shot備考
ログレベル設定--logging--log-levelオプション名変更
デバッグログ--logging debug--log-level debug変更なし
静音モード--logging quiet--quiet, -q短縮形追加
詳細ログ--verbose, -v新機能
進捗表示--progress✅ 自動自動的に表示
ジャーナル機能(NDJSON)--journal新機能
ログファイル保存標準出力をリダイレクト
ログローテーション廃止

ジャーナル機能(新機能)

処理結果をNDJSON(改行区切りJSON)形式で出力できます。

lightfile-shot /path/to/images --journal results.ndjson

出力例:

{"path":"image.jpg","status":"optimized","beforeSize":102400,"afterSize":51200}
{"path":"photo.png","status":"skipped","reason":"already optimized"}

詳細はジャーナルファイルを参照してください。

通知機能

機能旧LightFileLightFile Shot備考
Email通知(SMTP)非対応
Slack通知非対応

LightFile Shotには通知機能がありません。処理結果の通知が必要な場合は、ジャーナル機能と外部スクリプトを組み合わせるか、LightFile Batchを使用してください。

設定管理

機能旧LightFileLightFile Shot備考
コマンドラインオプション変更なし
YAML設定ファイル非対応
環境変数(トークン)LF_TOKEN新方式
環境変数(ログレベル)LOG_LEVEL変更なし
環境変数(言語)LANG新機能

複雑な設定管理が必要な場合は、YAML設定ファイルに対応したLightFile Batchを使用してください。

ライセンス管理

機能旧LightFileLightFile Shot備考
シリアルコード認証--serial廃止
トークン認証--license-token新方式
トークンファイル~/.lightfile-next/token新方式
ライセンス検証タイミング起動時起動時変更なし

ライセンストークンの指定方法

優先順位:

  1. コマンドラインオプション: --license-token <token>
  2. 環境変数: LF_TOKEN
  3. ファイル: ~/.lightfile-next/token

詳細はライセンス認証を参照してください。

システムディレクトリ

機能旧LightFileLightFile Shot備考
システムディレクトリ~/.lightfile/~/.lightfile-next/shot/パス変更
プロジェクトディレクトリ--project-dir非対応
バックアップディレクトリ--backup-dir非対応

エラーハンドリング

機能旧LightFileLightFile Shot備考
自動リトライ✅ 3回非対応
リトライ回数設定--file-error-retry非対応

LightFile Shotはエラー発生時に自動リトライを行いません。エラーが発生したファイルは終了コードとログで確認できます。

高度な機能

機能旧LightFileLightFile Shot備考
プロキシ設定--proxy✅ 環境変数HTTP_PROXY/HTTPS_PROXY
排他制御--pid不要(ワンタイム処理)
分析モード--analyze廃止

性能

項目旧LightFileLightFile Shot改善度
起動速度遅い(Node.js)高速(Go)⚡ 大幅改善
メモリ使用量高い(Node.js)低い(Go)⚡ 大幅改善
処理速度普通高速⚡ 改善
依存関係Node.js必須なし⚡ 完全なバイナリ

Go言語で実装されたLightFile Shotは、Node.js版と比較して起動が高速で、メモリ使用量も大幅に削減されています。

主な改善点

✅ 新機能

  1. 複製モード - 元ファイルを保持しつつ最適化版を別保存

    lightfile-shot /source /destination
  2. ジャーナル機能 - 処理結果をNDJSON形式で記録

    lightfile-shot /images --journal results.ndjson
  3. 完全なバイナリプログラム化

    • Node.js不要
    • 高速起動と省メモリ
    • 依存関係なし
  4. 多言語サポート

    LANG=ja lightfile-shot /images  # 日本語ログ
    LANG=en lightfile-shot /images  # 英語ログ

❌ 廃止機能

  1. リモートファイルシステム - ローカル専用に特化
  2. 処理済みファイルのスキップ - 毎回評価(最適化済みは自動スキップ)
  3. バックアップ機能 - 複製モードで代替
  4. 通知機能 - ジャーナル機能で代替
  5. YAML設定ファイル - シンプルなコマンドライン操作に特化

LightFile Shotへの移行を推奨するケース

以下のケースでは、LightFile Shotへの移行を推奨します:

  • ワンタイム処理が中心 - 定期的なバッチ処理ではなく、必要なときに実行
  • ローカルファイルシステムのみを使用 - リモートファイルシステムは不要
  • シンプルな設定で動作させたい - 複雑な設定ファイルは不要
  • 軽量で高速なツールを求めている - Node.jsの依存関係を避けたい
  • 複製モードを使いたい - 元ファイルを保持しつつ最適化版を作成

LightFile Batchへの移行を検討すべきケース

以下のケースでは、代わりにLightFile Batchへの移行を検討してください:

  • ⚠️ 定期的なバッチ処理を行っている - 処理済みファイルのスキップが必要
  • ⚠️ リモートファイルシステムを使用している - FTP/SFTP/WebDAV/S3など
  • ⚠️ バックアップや通知機能が必要 - 自動バックアップ、Email/Slack通知
  • ⚠️ YAML設定ファイルで管理したい - 複雑な設定を一元管理

詳細はLightFile Batchへの移行を参照してください。

次のステップ