# Modules



# Modules [#modules]

The `Pear` global API is minimal and not intended as a standard library. Application and integration libraries are supplied via installable modules prefixed with `pear-`.

## Stability legend [#stability-legend]

Module lists call out a stability indicator. The four levels:

| Stability                       | Description                                                 |
| ------------------------------- | ----------------------------------------------------------- |
| <Status level="stable" />       | Unlikely to change or be removed in the foreseeable future. |
| <Status level="experimental" /> | New, untested, or has known issues.                         |
| <Status level="deprecated" />   | Being removed or replaced in the future.                    |
| <Status level="unstable" />     | May change or be removed without warning.                   |

## Application libraries [#application-libraries]

Pear modules related directly to the application environment.

| Module                                                          | Description                                                  | Systems                                                                                                                                                                                                                                                                         | Stability                 |
| --------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| [pear-crasher](https://github.com/holepunchto/pear-crasher)     | Uncaught exceptions & uncaught rejections crash logger       | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-message](https://github.com/holepunchto/pear-message)     | Send inter-app pattern-matched object messages               | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-messages](https://github.com/holepunchto/pear-messages)   | Receive object messages that match a given object pattern    | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-pipe](https://github.com/holepunchto/pear-pipe)           | Parent-app-connected pipe, the other end of pear-run pipe    | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-run](https://github.com/holepunchto/pear-run)             | Run Pear child app by link. Returns a pipe to the child pipe | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-updates](https://github.com/holepunchto/pear-updates)     | Receive platform and application update notifications        | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-user-dirs](https://github.com/holepunchto/pear-user-dirs) | Get the path of user-specific directories                    | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-wakeups](https://github.com/holepunchto/pear-wakeups)     | Receive wakeup events, including link clicks external to app | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |

## User interface libraries [#user-interface-libraries]

Pear modules that supply User Interface runtime capabilities.

| Module                                                        | Description                                      | Systems                                                                                                                                                                                                                                                                         | Stability                 |
| ------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| [pear-electron](https://github.com/holepunchto/pear-electron) | Pear User-Interface Library for Electron         | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |
| [pear-bridge](https://github.com/holepunchto/pear-bridge)     | Local HTTP bridge for pear-electron applications | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div> | <Status level="stable" /> |

## Common libraries [#common-libraries]

Pear modules for general usage, including applications per case.

| Module                                                          | Description                                                      | Systems                                                                                                                                                                                                                                                                                                                                                                                                                                       | Stability                 |
| --------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| [pear-drop](https://github.com/holepunchto/pear-drop)           | Drop data, including application reset                           | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-dump](https://github.com/holepunchto/pear-dump)           | Synchronize files from link to dir peer-to-peer or from-disk     | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-gracedown](https://github.com/holepunchto/pear-gracedown) | Pear graceful closer. For use with `pipe.autoexit = false`       | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-info](https://github.com/holepunchto/pear-info)           | Read Pear project information by link                            | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-link](https://github.com/holepunchto/pear-link)           | Parser-Serializer for `pear://` links. Includes alias resolution | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" /> |
| [pear-opwait](https://github.com/holepunchto/pear-opwait)       | Pear operation stream promise wrapper                            | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-release](https://github.com/holepunchto/pear-release)     | Set application production release version length                | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-seed](https://github.com/holepunchto/pear-seed)           | Seed or reseed a Pear app drive by link                          | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-stage](https://github.com/holepunchto/pear-stage)         | Synchronize from-disk to app drive peer-to-peer                  | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |
| [pear-stamp](https://github.com/holepunchto/pear-stamp)         | Interleave locals into a template, sync and stream               | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |

## Developer libraries [#developer-libraries]

Pear modules to assist with developing & debugging

| Module                                                      | Description                                                                                            | Systems                                                                                                                                                                                                                                                                                                                                                                                                                                       | Stability                 |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| [pear-inspect](https://github.com/holepunchto/pear-inspect) | Securely enable remote debugging protocol over [Hyperswarm](/p2p/reference/building-blocks/hyperswarm) | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" /> |
| [pear-hotmods](https://github.com/holepunchto/pear-hotmods) | For `pear-electron` UI apps. Frontend framework-agnostic live-reload                                   | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" /> |

## Integration libraries [#integration-libraries]

Pear modules for runtime integrations. Such as [pear-electron](https://github.com/holepunchto/pear-electron).

| Module                                                          | Description                                                                                                                                                                                          | Systems                                                                                                                                                                                                                                                                                                                                                                                                                                       | Stability                   |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| [pear-appdrive](https://github.com/holepunchto/pear-appdrive)   | Read-only [Hyperdrive](/p2p/reference/building-blocks/hyperdrive) API subset interface for application drives                                                                                        | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" />   |
| [pear-aliases](https://github.com/holepunchto/pear-aliases)     | List of aliases for `pear://<alias>` links                                                                                                                                                           | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-api](https://github.com/holepunchto/pear-api)             | global.Pear API class—[removed as of Pear v3](/pear/reference/pear/api), use [Pear OTA](/pear/reference/pear/runtime)                                                                                | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="removed" />  |
| [pear-changelog](https://github.com/holepunchto/pear-changelog) | Changelog parsing and diffing—the parser behind [`pear changelog`](/pear/reference/pear/cli#pear-changelog); see [Publish a changelog for your app](/pear/how-to/operate-an-app/publish-a-changelog) | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-constants](https://github.com/holepunchto/pear-constants) | Shared Pear constants                                                                                                                                                                                | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-cmd](https://github.com/holepunchto/pear-cmd)             | Command parser & definitions                                                                                                                                                                         | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" />   |
| [pear-errors](https://github.com/holepunchto/pear-errors)       | Shared Pear error types                                                                                                                                                                              | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-gunk](https://github.com/holepunchto/pear-gunk)           | Shared builtins, overrides & linker mappings                                                                                                                                                         | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="unstable" /> |
| [pear-ipc](https://github.com/holepunchto/pear-ipc)             | Interprocess Communication library                                                                                                                                                                   | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" />   |
| [pear-ref](https://github.com/holepunchto/pear-ref)             | IO handle reference counter & tracker                                                                                                                                                                | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-rti](https://github.com/holepunchto/pear-rti)             | Runtime Information state bootstrap for API building                                                                                                                                                 | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-state](https://github.com/holepunchto/pear-state)         | Shared state structure & capabilities                                                                                                                                                                | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /> <img className="dark:[filter:invert(1)]" src="/android-light.svg" alt="Android" /> <img className="dark:[filter:invert(1)]" src="/ios-light.svg" alt="iOS" /></div> | <Status level="stable" />   |
| [pear-terminal](https://github.com/holepunchto/pear-terminal)   | Terminal User Interface library                                                                                                                                                                      | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" />   |
| [pear-tryboot](https://github.com/holepunchto/pear-tryboot)     | Used with `pear-ipc`, tries to boot sidecar on connect failure                                                                                                                                       | <div style="{ display: 'flex', alignItems: 'center', gap: '4px' }"><img className="dark:[filter:invert(1)]" src="/windows-light.svg" alt="Windows" /> <img className="dark:[filter:invert(1)]" src="/macos-light.svg" alt="macOS" /> <img src="/linux.svg" alt="Linux" /></div>                                                                                                                                                               | <Status level="stable" />   |

## See also [#see-also]

* [Bare modules](/bare/reference/bare/modules)—the lower-level `bare-*` runtime modules.
* Primitives—the peer-to-peer core:
  * [Hypercore](/p2p/reference/building-blocks/hypercore)
  * [Hyperbee](/p2p/reference/building-blocks/hyperbee)
  * [Hyperdrive](/p2p/reference/building-blocks/hyperdrive)
  * [Autobase](/p2p/reference/building-blocks/autobase)
  * [HyperDHT](/p2p/reference/building-blocks/hyperdht)
  * [Hyperswarm](/p2p/reference/building-blocks/hyperswarm)
* Helpers—utilities that complement the primitives:
  * [Corestore](/p2p/reference/helpers/corestore)
  * [Localdrive](/p2p/reference/helpers/localdrive)
  * [Mirrordrive](/p2p/reference/helpers/mirrordrive)
  * [Secretstream](/p2p/reference/helpers/secretstream)
  * [Compact encoding](/p2p/reference/helpers/compact-encoding)
  * [Protomux](/p2p/reference/helpers/protomux)
  * [HRPC](/p2p/reference/helpers/hrpc)
* Tools—standalone CLI utilities:
  * [Hypershell](/p2p/reference/tools/hypershell)
  * [Hypertele](/p2p/reference/tools/hypertele)
  * [Hyperbeam](/p2p/reference/tools/hyperbeam)
  * [Hyperssh](/p2p/reference/tools/hyperssh)
  * [Drives](/p2p/reference/tools/drives)
