マニフェストファイル【manifest file】
概要

記述形式や内容は開発言語や実行環境によって異なるが、多くはXMLやJSON、YAMLなどのテキスト形式で記述される。ファイル内には、プログラムの名称やバージョン、開発元といった属性情報、参照するコンポーネントやモジュール、ライブラリなどの依存関係、実行時に必要な外部ファイルや権限などの情報が記録される。
マニフェストファイルは、構成情報を実行ファイル本体から分離して管理するために用いられる。これにより、プログラム本体に手を加えずに設定や属性を更新でき、実行環境は起動時やインストール時にこのファイルを参照して、必要な資源や条件を正確に把握した上で処理を進められる。
代表的なものとして、Windowsネイティブアプリ(Win32アプリ)に付属する「.manifest」ファイル、.NET Frameworkの「アセンブリマニフェスト」、JavaのJARファイルに含まれる「MANIFEST.MF」ファイル、Androidアプリの開発・配布に用いられる「AndroidManifest.xml」ファイルなどがある。AndroidManifest.xmlには、アプリの構成要素や必要な権限などが記述され、インストールや実行の際にオペレーティングシステム(OS)に伝えられる。
近年ではWebアプリケーション分野でも利用が広がっており、PWA(プログレッシブウェブアプリ)では、アプリ名やアイコン、起動方法などを「manifest.json」ファイルに記述する。また、Dockerなどのコンテナプラットフォームや、Kubernetesなどのオーケストレーションツールでもマニフェストファイルが用いられ、システムの構築や運用の自動化に利用されている。
英語の “manifest” は「明白な」「積荷目録」「乗客名簿」などを意味する単語であり、ITの分野では、パッケージに含まれる内容を一覧化した目録という意味合いからこの名称が用いられている。日本語で外来語として使われる「マニフェスト」は、政党が選挙時に掲げる政権公約を指すことが多く、ソフトウェア分野での用法とは文脈が異なる。