Explanations
Understanding-oriented background on Pear's design — what peer-to-peer means here, why append-only logs, how the runtime is shaped, and what trade-offs we made.
Explanation is for understanding, not doing. Pages in this section answer "why" rather than "how": why does Pear use append-only logs, what does "peer-to-peer" mean in practice, what's the difference between Bare and Node, why is there no central server.
If you want to build something, head to How To. If you need to look up a specific API, that's Reference.
In this section
- Runtime and languages — JavaScript on Bare, native addons for other languages, and the Pear-end pattern for cross-platform apps.
- Storage and distribution — where Pear keeps your data, what the swarm replicates, and how new releases reach users.
- Dependencies and network — why NPM is the install path, the runtime relationship to Node, and what your IP discloses on a swarm.
Coming from the old FAQ?
The single FAQ page was retired. Each question now lives in the section it actually belongs to:
| Old FAQ question | New home |
|---|---|
| How do I get a list of installed applications? | Manage installed applications |
| How do I uninstall a Pear application? | Manage installed applications |
| Where is the Pear application stored? | Storage and distribution |
| Can Pear be used with X language? | Runtime and languages |
| How do I write an application once that runs on desktop, mobile, etc.? | Runtime and languages |
How is my application distributed? Do I have to keep pear seed running? | Storage and distribution |
| Why is NPM used for dependencies? | Dependencies and network |
| How do I distribute a binary version of my application? | Distribute as a binary |
Can peers know my IP address when using hyperswarm? | Dependencies and network |