HOME

TheInfoList



OR:

In
computer programming Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
, a manifest file is a file containing
metadata Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive ...
for a group of accompanying files that are part of a set or coherent unit. For example, the files of a
computer program A computer program is a sequence or set of instructions in a programming language for a computer to Execution (computing), execute. It is one component of software, which also includes software documentation, documentation and other intangibl ...
may have a manifest describing the name,
version number Software versioning is the process of assigning either unique ''version names'' or unique ''version numbers'' to unique states of computer software. Within a given version number category (e.g., major or minor), these numbers are generally assig ...
,
license A license (American English) or licence (Commonwealth English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit). A license is granted by a party (licensor) to another part ...
and the constituent files of the program. The term "manifest" is borrowed from a cargo shipping procedure, where a ship manifest would list the crew and/or cargo of a vessel. Manifest files are similar in nature to declaration files in that both specify the expected structure of a computer program to be consumed by another computer program, providing additional information that allow
system software System software is software designed to provide a platform for other software. An example of system software is an operating system (OS) (like macOS, Linux, Android, and Microsoft Windows). Application software is software that allows users to d ...
, software-defined tools (e.g.,
compilers In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
, linters), development environments, or other developers to understand how to interact with certain resources or code. Unlike declaration files, manifests do this in different ways and for different purposes. For instance, manifest files describe things like dependencies, permissions, or runtime settings that control the execution of code. Declaration files describe the structure of code (such as types, interfaces, or functions) to control the translation of code, support static type-checking, and enable convenient features like autocompletion and automatic code refactoring. Build systems and operating systems may use manifest files to understand how to set up, execute, or integrate a computer program into an existing system. Furthermore, while manifest files focus on project-level or system-level information (like runtime settings or dependencies), declaration files focus on code-level details (like the types or signatures of functions and objects).


Types


Package manifest

Linux distribution A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
s rely heavily on
package management system A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
s for distributing software. In this scheme, a package is an
archive file In computing, an archive file stores the content of one or more files, possibly compressed, with associated metadata such as file name, directory structure, error detection and correction information, commentary, compressed data archives, sto ...
containing a manifest file. The primary purpose is to enumerate the files which are included in the distribution, either for processing by various packaging tools or for human consumption. Manifests may contain additional information; for example, in JAR (a package format for delivering software written in
Java programming language Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
), they can specify a version number and an
entry point In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command line arguments. To start a program's execution, the loader or operating system passes co ...
for execution. The manifest may optionally contain a
cryptographic hash A cryptographic hash function (CHF) is a hash algorithm (a map of an arbitrary binary string to a binary string with a fixed size of n bits) that has special properties desirable for a cryptographic application: * the probability of a particu ...
or
checksum A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify dat ...
of each file. By creating a cryptographic signature for such a manifest file, the entire contents of the distribution package can be validated for authenticity and integrity, as altering any of the files will invalidate the checksums in the manifest file.


Application and assembly manifest

In
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, software that relies on Windows Side-by-Side (
WinSxS Side-by-side assembly (SxS, or WinSxS on Microsoft Windows) technology is a standard for executable files in Windows 98 Second Edition, Windows 2000, and later versions of Windows that attempts to alleviate problems (collectively known as " DLL H ...
) needs an application manifest, which is an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
document that is either embedded in an
executable file In computer science, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a da ...
or contained in a separate
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
file that accompanies it. It bears name, version, trust information, privileges required for execution and dependencies on other components. An assembly manifest is very similar to an application manifest but describes the identity of components known as " assemblies". These assemblies are referred to in the application manifest. An example of an application manifest is as follows. This application manifest has two core parts: Security and dependency. The security part says that the application requires "asInvoker" security level; that is, it can be operated at whatever security level it is executed. The dependency part says the application needs a component called "Microsoft.VC90.CRT" with version number "9.0.21022.8".


HTML5 cache manifest

A cache manifest in HTML5 is a
plain text In computing, plain text is a loose term for data (e.g. file contents) that represent only characters of readable material but not its graphical representation nor other objects ( floating-point numbers, images, etc.). It may also include a lim ...
file accompanying a
web app A web application (or web app) is application software that is created with World Wide Web, web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to Dynamic web page, dynamically ...
that helps it run when there is no network connectivity. The caching mechanism reads this file and ensures that its contents are available locally. An HTML5 cache manifest is served with its content type set to "text/cache-manifest". Example of a cache manifest:
CACHE MANIFEST 
/test.css
/test.js
/test.png


Webmanifest

A webmanifest is a
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
file used in
progressive web app A progressive web application (PWA), or progressive web app, is a type of web app that can be installed on a device as a standalone application software, application. PWAs are installed using the offline cache of the device's web browser. PWAs w ...
s to make them easily shareable via a URL, discoverable by a search engines, and alleviates complex installation procedures. Furthermore, PWAs support native app-style interactions and navigation, including being added to home screen, displaying splash screens, etc.


WebExtension manifest

The WebExtension manifest is a file called manifest.json used to configure browser extensions. The standard is currently in version 3, but version 2 is still supported by gecko-based browsers like
Mozilla Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curren ...
.


References

{{Reflist Computer file formats Filename extensions