What is a "Paclet"?

Update for version 12.1

Starting with version 12.1, paclets are now exposed as user-accessible packaging functionality. They are documented here.

Todd Gayley of WRI has published some preliminary documentation about Paclets and Paclet Development. There is also an associated introductory video.


Original Response

A paclet is a distribution mechanism for resources that contribute to the contents of a package. Most of the paclet machinery is in the PacletManager context, which is not public API.

It appears that the only part of paclet functionality presently intended for public use involves PacletInfo.m, a descriptor file for Mathematica applications. This is described in the Wolfram Workbench documentation.


Paclets are downloaded chunks of curated computable data:

Load-on-Demand Curated Data

Mathematica 6 pioneers the powerful concept of built-in computable data sources. An efficient load-on-demand mechanism makes hundreds of gigabytes of carefully curated and continually updated data immediately available inside Mathematica for use in computations. Mathematica 6 introduces major collections of data in mathematics, physics, chemistry, astronomy, geography, linguistics and finance—all organized and aggregated for the first time by Wolfram Research for direct use in computations.

From Mathematica Internet Connectivity:

When you call a data function like FinancialData, Mathematica gets the data it needs from the internet. When you click a link to a documentation notebook or call a data function like CountryData, Mathematica knows whether a newer version of the information is available on a Wolfram Research Paclet Server, and if so it will download and install the update automatically. In the case of smaller paclets like documentation notebooks, this is often so fast that you will not even notice it happening.

Some details of this functionality are found here:

Mathematica‘s data functions download data paclets from our data servers. Hence functions such as CityData,WeatherData, and CountryData will not work on computers disconnected from the internet. It is possible to transfer such paclets from an online to an offline machine with the following steps:

  • Download your paclet of interest (e.g. CityData) to the online machine by evaluating this in Mathematica:

    CityData[All,"Preload"]
    
  • Locate the paclet repository folder by evaluating:

    ToFileName[{$UserBaseDirectory, "Paclets", "Repository"}]
    
  • And identify the subfolders starting with “CityData” in their names.

  • Copy these folders into the equivalent paclet repository folder on your offline machine. (The corresponding location on the offline computer can be found using the same ToFileName evaluation from above.)

  • Have the offline Mathematica installation recognize the added data paclets by evaluating :

    RebuildPacletData[]
    
  • Finally, evaluate a few examples in the documentation for CityData to verify that the desired data is now available in Mathematica.


Specific use and format of the PacletInfo.m file is provided by Scientific Arts (.nb):

As mentioned above, within the package directory which we are calling MyApplication there will also be a file called PacletInfo.m. This is a file with a specific structure which tells Mathematica what is contained within the Guides, Tutorials, and ReferencePages directories and how the Documentation Center should categorize and access them. The PacletInfo.m file is a plain text file with elements that describe what sorts of materials are contained in the Guides, Tutorials, and ReferencePages directories as well as things such as what Context the functions described within the ReferencePages belong to. Also it lets the Documentation Center know how to list the material on the Installed Add-Ons page that is linked to from the front page of the Documentation Center.

Read the Notebook for much more complete coverage.