Universal Packages
  • 05 May 2022
  • 1 Minute to read
  • Dark
    Light
  • PDF

Universal Packages

  • Dark
    Light
  • PDF

There's not much to a universal package file; at a minimum it:

  • is a ZIP archive format with a .upack file extension
  • has a manifest file at the root named upack.json with a few required field

Files within the /package directory are referred to as content (and will be "unpackaged" by the client or server), and all other files are metacontent.

You can add any number of files or directories outside of these minimal requirements - and in fact, that's exactly what universal packages are designed for.

In the extremely unlikely event that a future version of this specification will require or uses additional files (we can think of absolutely no reason this would ever be required), then these will be opt-in and specified using the manifest, or potentially use a .upack2 extension.

Package Metacontent & Guidance

Files and directories stored outside of the ZIP archive's /package directory are referred to as metacontent, and the upack.json manifest file is the only required metacontent in a package.

Unlike actual content, there is no "general purpose" usecase for metacontent. Instead, think of it as a tool to help you build a specification for a package format that is based on a universal package. For example, romp packages define several metacontent files and folders that are used to help install the /package contents.


Was this article helpful?