A XUL extension can includes the user interface (the XUL and Javascript source files, which can be packaged as a .jar file), any XPCOM components (which can be compiled C++, JavaScript components etc), defaults files for preferences introduced by the Extension, and a manifest file that describes the Extension to the Extension System.

The manifest file includes things like version, metadata that is shown in the Extension manager like Extension Name, author, contributors, links to the home page, compatibility information, a link to a remote update service that provides information about available updates, etc.

These pieces are then combined and zipped and the file given the a name with the Ò.xpiÓ extension, and then served from the web using the application/x-xpinstall content type.