# Plug-in

As of the Mini Program base library 1.9.6, developing and using plug-ins are supported. (If the plug-in contains pages, base library 2.1.0 is required.)

A plug-in is a package of a set of js APIs, [custom components] (../custom-component/index.md) or pages for embedding into a Mini Program. A plug-in can't run independently. It must be embedded into other Mini Programs to be used. A plug-in's code is invisible to a third-party Mini Program when it is used by the Mini Program. Therefore, plug-ins are suitable for packaging their own functions or services and providing them to third-party Mini Programs for presentation and use.

Plug-in developers can write plug-in code and upload the code, just like developing Mini Programs. A plug-in can be used by other Mini Programs only after being released. The Mini Program platform hosts the plug-in code, which will be downloaded and run with a Mini Program when it is invoked by the Mini Program.

Plug-ins are more independent than js files or custom components, with their own APIs, domain name list, etc. But they have some limitations. For example, [some APIs can't be called or have limited functionality] (api-limit .md). Although some special APIs cannot be directly called by plug-ins, they can be implemented by using the plug-in function pages.

Moreover, the framework protects the data security of Mini Programs and the plug-ins they use to avoid the data theft between them (unless the data is passed between them).

Plug-in developers can refer to Developing Plug-ins, and plug-in users Using Plug-ins.