1# HPM Part Overview 2 3 4This section describes the basic concepts related to HPM Part in OpenHarmony. 5 6 7## Introduction to HPM Part 8 9 10### HPM Part Category 11 12An HPM Part is used as a distribution unit in OpenHarmony. There are two types of HPM Parts: 13 14- **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. 15 16- **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. 17 18 19### HPM Part Composition 20 21An HPM Part consists of two types of files: description file and content file. 22 23The table below lists the description files. 24 25 **Table 1** Description files 26 27| File Name| Description | Mandatory | 28| -------- | -------- | -------- | 29| bundle.json | Metadata declaration file| Yes| 30| README.md | Readme file| Yes| 31| LICENSE | License file| Yes| 32| CHANGEME.md | Change log file| No| 33 34The content files can be any of the following: 35 36- Binary file of the distributed part 37 38- Source code file of the distributed part 39 40- Build script file 41 42 43 **Figure 1** Relationship between the part/module-level HPM Part and distribution-level HPM Part 44 45 ![en-us_image_0000001195369804](figures/en-us_image_0000001195369804.png) 46 47 48## Introduction to HPM 49 50OpenHarmony Package Manager (HPM) is an open collaboration platform that connects consumers and providers. HPM Parts are objects managed by HPM. 51 52Through this platform, the provider can publish HPM Parts and the consumer can download and use HPM Parts. 53 54- The provider declares the attributes of an HPM Part and publishes it to the platform. 55 56- The consumer declares the dependencies in the HPM Part of the specified version to obtain the required resources. 57 58The HPM platform matches the requirements of the provider and consumer. 59 60 61 **Figure 2** HPM functions 62 63 ![en-us_image_0000001240409717](figures/en-us_image_0000001240409717.png) 64 65**HPM consists of the following:** 66 67- **hpm-cli: a cross-platform command line tool released in [@ohos/hpm-cli](https://www.npmjs.com/package/@ohos/hpm-cli)** 68 69 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. 70 71- **[DevEco Marketplace](https://repo.harmonyos.com): a resource repository on the server** 72 73 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