Skip to content

holepunchto/pear-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pear by Holepunch

Pear loads applications remotely from peers and allows anyone to create and share applications with peers.

Pear is an installable Peer-to-Peer (P2P) Runtime, Development & Deployment platform.

Build, share & extend unstoppable, zero-infrastructure P2P applications for Mobile, Desktop & Terminal.

Welcome to the Internet of Peers

  – Holepunch, the P2P Company

Documentation

Terms

  • API - Application-Programming-Interface
  • CLI - Command-Line-Interface
  • link - a pear:// link, a file:// link or an absolute/relative dir path
  • P2P - Peer-to-Peer

Legend

Throughout the documentation, indications of stability are provided. Some modules are well-established and used widely, making them highly unlikely to ever change. Other modules may be new, experimental, or known to have risks associated with their use.

The following stability indices have been used:

Stability Description
stable Unlikely to change or be removed in the foreseeable future
experimental New, untested, or has known issues
deprecated Being removed or replaced in the future
unstable May change or be removed without warning

Showcase

Peer-to-Peer applications built on, deployed with, running on Pear.

  • Keet: A peer-to-peer chat and video-conferencing application with end-to-end encryption.

Reference

Pear is a native point-to-point peer-to-peer capable platform that consists of a runtime binary, an API, userland modules, a command-line interface, an on-demand daemon and an application shell to provide the capabilities to develop & deploy production P2P applications. With JavaScript and beyond.

Pear's runtime binary is built on Bare, a small and modular JavaScript runtime for desktop and mobile. Like Node.js, it provides an asynchronous, event-driven architecture for writing applications in the lingua franca of modern software. Unlike Node.js, embedding and cross-device are supported as core use cases, aiming to run just as well on mobile as desktop.

Examples

Guides

Guides on using Pear Runtime to build and share peer-to-peer applications.

How-tos

Collection of How-tos using the essential peer-to-peer building-blocks in Pear applications.

Pear Modules

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

Application Libraries

Pear modules related directly to application environment.

Module Description Systems     Stability
pear-crasher Uncaught exceptions & uncaught rejections crash logger Windows MacOS Linux stable
pear-message Send inter-app pattern-matched object messages Windows MacOS Linux stable
pear-messages Receive object messages that match a given object pattern Windows MacOS Linux stable
pear-pipe Parent-app-connected pipe, the other end of pear-run pipe Windows MacOS Linux stable
pear-run Run Pear child app by link. Returns a pipe to the child pipe Windows MacOS Linux stable
pear-updates Receive platform and application update notifications Windows MacOS Linux stable
pear-user-dirs Get the path of user-specific directories Windows MacOS Linux stable
pear-versions Platform, Application and Runtime versions Windows MacOS Linux stable
pear-wakeups Receive wakeup events, including link clicks external to app Windows MacOS Linux stable

User Interface Libraries|

Pear modules that supply User Interface runtime capabilities.

Module Description Systems     Stability
pear-electron Pear User-Interface Library for Electron" Windows MacOS Linux stable
pear-bridge Local HTTP bridge for pear-electron applications Windows MacOS Linux stable

Common Libraries

Pear modules for general usage, including applications per case.

Module Description Systems     Stability
pear-drop Drop data, including application reset Windows MacOS Linux stable
pear-dump Synchronize files from link to dir peer-to-peer or from-disk Windows MacOS Linux stable
pear-gracedown Pear graceful closer. For use with pipe.autoexit = false Windows MacOS Linux stable
pear-info Read Pear project information by link Windows MacOS Linux stable
pear-link Parser-Serializer for pear:// links. Includes alias resolution Windows MacOS Linux Android iOS stable
pear-opwait Pear operation stream promise wrapper Windows MacOS Linux stable
pear-release Set application production release version length Windows MacOS Linux stable
pear-seed Seed or reseed a Pear app drive by link Windows MacOS Linux stable
pear-stage Synchronize from-disk to app drive peer-to-peer Windows MacOS Linux stable
pear-stamp Interleave locals into a template, sync and stream Windows MacOS Linux stable

Developer Libraries

Pear modules to assist with developing & debugging

Module Description Systems     Stability
pear-inspect Securely enable remote debugging protocol over Hyperswarm Windows MacOS Linux Android iOS stable
pear-hotmods For pear-electron UI apps. Frontend framework-agnostic live-reload Windows MacOS Linux stable

Integration Libraries

Pear modules for runtime integrations. Such as pear-electron.

Module Description Systems     Stability
pear-appdrive Read-only Hyperdrive API subset interface for application drives Windows MacOS Linux stable
pear-aliases List of aliases for pear://<alias> links Windows MacOS Linux Android iOS stable
pear-api global.Pear API class Windows MacOS Linux Android iOS stable
pear-changelog Changelog parsing and diffing Windows MacOS Linux Android iOS stable
pear-constants Shared Pear constants Windows MacOS Linux Android iOS stable
pear-cmd Command parser & definitions Windows MacOS Linux stable
pear-errors Shared Pear error types Windows MacOS Linux Android iOS stable
pear-gunk Shared builtins, overrides & linker mappings Windows MacOS Linux unstable
pear-ipc Interprocess Communication library Windows MacOS Linux stable
pear-ref IO handle reference counter & tracker Windows MacOS Linux Android iOS stable
pear-rti Runtime Information state bootstrap for API building Windows MacOS Linux Android iOS stable
pear-state Shared state structure & capabilities Windows MacOS Linux Android iOS stable
pear-terminal Terminal User Interface library Windows MacOS Linux stable
pear-tryboot Used with pear-ipc, tries to boot sidecar on connect failure Windows MacOS Linux stable

P2P Modules

Modules that supply point-to-point peer-to-peer connection and storage capabilities.

Building-Block Libraries

The essential building-blocks for building powerful P2P applications using Pear.

Name Description Systems     Stability
hypercore A distributed, secure append-only log for creating fast, scalable P2P applications Windows MacOS Linux Android iOS stable
hyperbee An append-only B-tree running on a Hypercore. Allows sorted iteration and more Windows MacOS Linux Android iOS stable
hyperdrive A secure, real-time, efficient distributed P2P file-system Windows MacOS Linux Android iOS stable
autobase A "virtual Hypercore" layer over many Hypercores owned by many different peers Windows MacOS Linux Android iOS stable
hyperdht The Distributed Hash Table (DHT) powering Hyperswarm Windows MacOS Linux Android iOS stable
hyperswarm A high-level API for finding and connecting to peers by topic Windows MacOS Linux Android iOS stable

Helper Libraries

Helper modules can be used together with the building-blocks to create cutting-edge P2P tools and application-modules.

Name Description Systems     Stability
corestore A Hypercore factory that simplifiest managing Hypercore collections Windows MacOS Linux Android iOS stable
localdrive A file system interoperable with Hyperdrive Windows MacOS Linux Android iOS stable
mirror-drive Mirror between a Hyperdrive and/or Localdrive Windows MacOS Linux Android iOS stable
@hyperswarm/secret-stream Securely create connections between peers in a Hyperswarm Windows MacOS Linux Android iOS stable
compact-encoding Binary encoding schemes for efficient parser-serializers. Windows MacOS Linux Android iOS stable
protomux Multiplex multiple message oriented protocols over a stream Windows MacOS Linux Android iOS stable

Bare Modules

Pear's native runtime is Bare. The Bare global API is minimal and not intended as a standard library. Standard runtime functionality is provided via a installable modules. prefixed with bare-.

Module Description Systems     Stability
bare-abort Cause abnormal program termination and generate a crash report Windows MacOS Linux Android iOS stable
bare-ansi-escapes Parse and produce ANSI escape sequences Windows MacOS Linux Android iOS stable
bare-assert Assertion library for JavaScript Windows MacOS Linux Android iOS stable
bare-atomics Native synchronization primitives for JavaScript Windows MacOS Linux Android iOS stable
bare-buffer Native buffers for JavaScript Windows MacOS Linux Android iOS stable
bare-bundle Application bundle format for JavaScript Windows MacOS Linux Android iOS stable
bare-channel Inter-thread messaging for JavaScript Windows MacOS Linux Android iOS stable
bare-console WHATWG debugging console for JavaScript Windows MacOS Linux Android iOS stable
bare-crypto Cryptographic primitives for JavaScript Windows MacOS Linux Android iOS stable
bare-daemon Create and manage daemon processes in JavaScript Windows MacOS Linux stable
bare-dgram Native UDP for JavaScript Windows MacOS Linux Android iOS stable
bare-dns Domain name resolution for JavaScript Windows MacOS Linux Android iOS stable
bare-encoding WHATWG text encoding interfaces for JavaScript Windows MacOS Linux Android iOS stable
bare-env Environment variable support for JavaScript Windows MacOS Linux Android iOS stable
bare-events Event emitters for JavaScript Windows MacOS Linux Android iOS stable
bare-fetch WHATWG Fetch implementation for Bare Windows MacOS Linux Android iOS stable
bare-form-data Form data support for Bare Windows MacOS Linux Android iOS stable
bare-format String formatting for JavaScript Windows MacOS Linux Android iOS stable
bare-fs Native file system for JavaScript Windows MacOS Linux Android iOS stable
bare-hrtime High-resolution timers for JavaScript Windows MacOS Linux Android iOS stable
bare-http1 HTTP/1 library for JavaScript Windows MacOS Linux Android iOS stable
bare-https HTTPS library for JavaScript Windows MacOS Linux Android iOS stable
bare-inspect Inspect objects as strings for debugging Windows MacOS Linux Android iOS stable
bare-inspector V8 inspector support for Bare Windows MacOS Linux Android iOS stable
bare-ipc Lightweight pipe-based IPC for Bare Windows MacOS Linux Android iOS stable
bare-logger Low-level logger for Bare with system log integration Windows MacOS Linux Android iOS stable
bare-module Module support for JavaScript Windows MacOS Linux Android iOS stable
bare-os Operating system utilities for JavaScript Windows MacOS Linux Android iOS stable
bare-pack Bundle packing for Bare Windows MacOS Linux Android iOS stable
bare-path Path manipulation library for JavaScript Windows MacOS Linux Android iOS stable
bare-performance Performance monitoring for Bare Windows MacOS Linux Android iOS stable
bare-pipe Native I/O pipes for JavaScript Windows MacOS Linux Android iOS stable
bare-queue-microtask Microtask queuing for Bare Windows MacOS Linux Android iOS stable
bare-readline Line editing for interactive CLIs with command history Windows MacOS Linux Android iOS stable
bare-realm Realm support for Bare Windows MacOS Linux Android iOS stable
bare-repl Read-Evaluate-Print-Loop environment for JavaScript Windows MacOS Linux Android iOS stable
bare-rpc https://github.com/holepunchto/librpc ABI compatible RPC for Bare Windows MacOS Linux Android iOS stable
bare-semver Minimal semantic versioning library for Bare Windows MacOS Linux Android iOS stable
bare-signals Native signal handling for JavaScript Windows MacOS Linux Android iOS stable
bare-stream Streaming data for JavaScript Windows MacOS Linux Android iOS stable
bare-structured-clone Structured cloning algorithm for JavaScript Windows MacOS Linux Android iOS stable
bare-subprocess Native process spawning for JavaScript Windows MacOS Linux stable
bare-tcp Native TCP sockets for JavaScript Windows MacOS Linux Android iOS stable
bare-timers Native timers for JavaScript Windows MacOS Linux Android iOS stable
bare-tls Transport Layer Security (TLS) streams for JavaScript Windows MacOS Linux Android iOS stable
bare-tty Native TTY streams for JavaScript Windows MacOS Linux Android iOS stable
bare-type Cross-realm type predicates for Bare Windows MacOS Linux Android iOS stable
bare-unpack Bundle unpacking for Bare Windows MacOS Linux Android iOS stable
bare-url WHATWG URL implementation for JavaScript Windows MacOS Linux Android iOS stable
bare-worker Higher-level worker threads for JavaScript Windows MacOS Linux Android iOS stable
bare-ws WebSocket library for JavaScript Windows MacOS Linux Android iOS stable
bare-zlib Stream-based zlib bindings for JavaScript Windows MacOS Linux Android iOS stable
bare-zmq Low-level ZeroMQ bindings for JavaScript Windows MacOS Linux Android iOS stable

Compatibility modules for Node.js builtins in Bare can be found in bare-node.

Tools

Beyond the Pear CLI these ecosystem P2P CLI tools are additionally useful for day-to-day development and operations.

Name Description Systems     Stability
Hypershell A CLI to create and connect to P2P E2E encrypted shells Windows MacOS Linux stable
Hypertele A swiss-knife proxy powered by hyperdht Windows MacOS Linux stable
Hyperbeam A one-to-one and end-to-end encrypted internet pipe Windows MacOS Linux stable
Hyperssh A CLI to run SSH over the DHT. Windows MacOS Linux stable
Drives CLI that interacts with hyperdrive & localdrive Windows MacOS Linux stable

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 27