1e41f4b71Sopenharmony_ci# HPM Part Overview 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciThis section describes the basic concepts related to HPM Part in OpenHarmony. 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## Introduction to HPM Part 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci### HPM Part Category 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ciAn HPM Part is used as a distribution unit in OpenHarmony. There are two types of HPM Parts: 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci- **Part/Module-level HPM Part**: used to achieve module or part reusability. The distributed content can be source code or binary files. Generally, such an HPM Part corresponds to a code repository and is a release of the code repository. 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci- **Distribution-level HPM Part**: used to describe an OS distribution. It consists of a list of dependent parts and scripts for building the distribution. The distribution contains various components (such as the driver, kernel, framework, and applications) of a complete OS. The image generated after the build can be used for burning. 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci### HPM Part Composition 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ciAn HPM Part consists of two types of files: description file and content file. 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ciThe table below lists the description files. 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci **Table 1** Description files 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| File Name| Description | Mandatory | 28e41f4b71Sopenharmony_ci| -------- | -------- | -------- | 29e41f4b71Sopenharmony_ci| bundle.json | Metadata declaration file| Yes| 30e41f4b71Sopenharmony_ci| README.md | Readme file| Yes| 31e41f4b71Sopenharmony_ci| LICENSE | License file| Yes| 32e41f4b71Sopenharmony_ci| CHANGEME.md | Change log file| No| 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ciThe content files can be any of the following: 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci- Binary file of the distributed part 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci- Source code file of the distributed part 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci- Build script file 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci **Figure 1** Relationship between the part/module-level HPM Part and distribution-level HPM Part 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci  46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci## Introduction to HPM 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ciOpenHarmony Package Manager (HPM) is an open collaboration platform that connects consumers and providers. HPM Parts are objects managed by HPM. 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ciThrough this platform, the provider can publish HPM Parts and the consumer can download and use HPM Parts. 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci- The provider declares the attributes of an HPM Part and publishes it to the platform. 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci- The consumer declares the dependencies in the HPM Part of the specified version to obtain the required resources. 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ciThe HPM platform matches the requirements of the provider and consumer. 59e41f4b71Sopenharmony_ci 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci **Figure 2** HPM functions 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci  64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci**HPM consists of the following:** 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci- **hpm-cli: a cross-platform command line tool released in [@ohos/hpm-cli](https://www.npmjs.com/package/@ohos/hpm-cli)** 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci The hpm-cli tool offers a series of commands for creating, building, installing, packing, running, and publishing HPM Parts. You can use these commands to manage the lifecycle of the HPM Parts. 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci- **[DevEco Marketplace](https://repo.harmonyos.com): a resource repository on the server** 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci On [DevEco Marketplace](https://repo.harmonyos.com), you can register, store, and search for HPM Parts by category. Each HPM Part has a page providing access to its readme file, dependencies, historical versions, change history, license, download volume, and source code repository address. You can publish HPM Parts to this resource repository. 74