Bare modules
Catalog of `bare-*` runtime modules that supply Bare's standard-library functionality (process, fs, net, crypto, streams, …), grouped by area.
Bare modules
Pear's native runtime is Bare—a small, modular JavaScript runtime for desktop and mobile. The Bare global API is minimal and not intended as a standard library; standard runtime functionality is provided via installable modules prefixed with bare-. The modules below are grouped by area; within each group they're ordered roughly from foundational to specialized.
To run a script on Bare directly, see the bare CLI. To embed a Bare core inside a native app, see Bare Kit and One core, many platforms.
If you author native addons for Bare, the Bare native-addon prebuild actions build and collect prebuilt binaries across platforms in CI.
Modules & packaging
The module system, bundling, and packaging tools.
| Module | Description | Systems | Stability |
|---|---|---|---|
| bare-module | Module support for JavaScript — reference | stable | |
| bare-module-lexer | Heuristic lexer for detecting imports and exports in JavaScript modules | stable | |
| bare-bundle | Application bundle format for JavaScript | stable | |
| bare-pack | Bundle packing for Bare—traverse a module graph into an embeddable bundle | stable | |
| bare-unpack | Bundle unpacking for Bare | stable | |
| bare-make | Opinionated CMake-based build system generator for native addons — reference | stable | |
| bare-build | Package a Bare app as native bundles or standalone executables | stable | |
| bare-runtime | Prebuilt Bare binaries for macOS, iOS, Linux, Android, and Windows | stable | |
| bare-semver | Minimal semantic versioning library for Bare — reference | stable | |
| bare-realm | Realm support for Bare | stable | |
| bare-type | Cross-realm type predicates for Bare | stable |
Threads, events & processes
Concurrency primitives, the event system, and process control.
| Module | Description | Systems | Stability |
|---|---|---|---|
| bare-worker | Higher-level worker threads for JavaScript | stable | |
| bare-channel | Inter-thread messaging for JavaScript — reference | stable | |
| bare-atomics | Native synchronization primitives for JavaScript — reference | stable | |
| bare-events | Event emitters for JavaScript | stable | |
| bare-queue-microtask | Microtask queuing for Bare | stable | |
| bare-timers | Native timers for JavaScript | stable | |
| bare-hrtime | High-resolution timers for JavaScript | stable | |
| bare-signals | Native signal handling for JavaScript | stable | |
| bare-daemon | Create and manage daemon processes in JavaScript | stable | |
| bare-subprocess | Native process spawning for JavaScript — reference | stable | |
| bare-process | Node.js-compatible process control for Bare | stable | |
| bare-thread | Thread support for Bare | stable |
File system & OS
Filesystem access, paths, environment, and terminal I/O.
| Module | Description | Systems | Stability |
|---|---|---|---|
| bare-fs | Native file system for JavaScript — reference | stable | |
| bare-path | Path manipulation library for JavaScript | stable | |
| bare-os | Operating system utilities for JavaScript — reference | stable | |
| bare-env | Environment variable support for JavaScript | stable | |
| bare-pipe | Native I/O pipes for JavaScript — reference | stable | |
| bare-tty | Native TTY streams for JavaScript | stable | |
| bare-tui | A little TUI framework for Bare, based on bubbletea | stable | |
| bare-readline | Line editing for interactive CLIs with command history | stable | |
| bare-ansi-escapes | Parse and produce ANSI escape sequences | stable |
Networking
Sockets, transport security, HTTP, and RPC.
| Module | Description | Systems | Stability |
|---|---|---|---|
| bare-tcp | Native TCP sockets for JavaScript — reference | stable | |
| bare-dgram | Native UDP for JavaScript | stable | |
| bare-dns | Domain name resolution for JavaScript | stable | |
| bare-http1 | HTTP/1 library for JavaScript | stable | |
| bare-https | HTTPS library for JavaScript | stable | |
| bare-tls | Transport Layer Security (TLS) streams for JavaScript — reference | stable | |
| bare-ws | WebSocket library for JavaScript | stable | |
| bare-fetch | WHATWG Fetch implementation for Bare — reference | stable | |
| bare-form-data | Form data support for Bare — reference | stable | |
| bare-url | WHATWG URL implementation for JavaScript — reference | stable | |
| bare-rpc | librpc ABI compatible RPC for Bare — reference | stable | |
| bare-net | TCP and IPC servers and clients for JavaScript | stable | |
| bare-ipc | Lightweight pipe-based IPC for Bare — reference | stable | |
| bare-zmq | Low-level ZeroMQ bindings for JavaScript | stable |
Data, streams & encoding
Buffers, streaming, cryptography, and serialization.
| Module | Description | Systems | Stability |
|---|---|---|---|
| bare-buffer | Native buffers for JavaScript | stable | |
| bare-stream | Streaming data for JavaScript — reference | stable | |
| bare-crypto | Cryptographic primitives for JavaScript — reference | stable | |
| bare-encoding | WHATWG text encoding interfaces for JavaScript | stable | |
| bare-structured-clone | Structured cloning algorithm for JavaScript — reference | stable | |
| bare-zlib | Stream-based zlib bindings for JavaScript | stable |
Diagnostics & console
Logging, inspection, assertions, and the REPL.
| Module | Description | Systems | Stability |
|---|---|---|---|
| bare-console | WHATWG debugging console for JavaScript — reference | stable | |
| bare-inspect | Inspect objects as strings for debugging | stable | |
| bare-inspector | V8 inspector support for Bare — reference | stable | |
| bare-logger | Low-level logger for Bare with system log integration | stable | |
| bare-performance | Performance monitoring for Bare | stable | |
| bare-assert | Assertion library for JavaScript | stable | |
| bare-abort | Cause abnormal program termination and generate a crash report | stable | |
| bare-format | String formatting for JavaScript | stable | |
| bare-repl | Read-Evaluate-Print-Loop environment for JavaScript | stable |
Media
Audio, video, and image formats for Bare apps.
| Module | Description |
|---|---|
| bare-ffmpeg | Low-level FFmpeg bindings for Bare |
| bare-media | A set of media APIs for Bare |
| bare-png | PNG support for Bare |
| bare-jpeg | JPEG support for Bare |
| bare-gif | GIF support for Bare |
| bare-webp | WebP support for Bare |
| bare-heif | HEIF support for Bare |
| bare-tiff | TIFF support for Bare |
| bare-bmp | Native BMP codec for Bare |
| bare-ico | ICO support for Bare |
| bare-svg | SVG support for Bare |
| bare-exif | EXIF metadata support for Bare |
| bare-image-resample | Image resampling support for Bare |
Native development kits
For embedding a Bare core inside a native application rather than running it standalone, use the toolkits below. They're documented in the Bare Kit reference and the One core, many platforms explanation.
| Project | Description |
|---|---|
| bare-kit | Bare for native application development—worklets and IPC for iOS and Android |
| react-native-bare-kit | bare-kit for React Native |
| bare-expo | Example of embedding Bare in an Expo application |
| bare-ios | Example of embedding Bare in an iOS application |
| bare-native | Native application development framework for Bare |
The sections below catalog the rest of the published bare-* modules. They're listed by area without the platform/stability matrix above—per-module platform support and stability are tracked in each repository (and in the project's module research dossier).
Node.js compatibility
Shims and compatibility layers that map Node.js APIs and globals onto Bare. See also bare-node as the umbrella entry point.
| Module | Description |
|---|---|
| bare-node | Compatibility modules for Node.js builtins in Bare |
| bare-node-runtime | Compatibility layer for Node.js builtins and globals in Bare |
| bare-vm | Isolated JavaScript contexts for Bare |
| bare-async-hooks | async_hooks shim for Bare |
| bare-abort-controller | Abort controller support for Bare |
| bare-querystring | URL query-string utilities |
| bare-http-parser | Streaming HTTP request and response parser for Bare |
| bare-utils | Node.js-compatible utility functions for Bare |
| bare-intl | ECMAScript Internationalization API for Bare |
| bare-compat-napi | Bare compatibility headers for Node-API |
| bare-string-decoder | string_decoder shim for Bare |
| bare-punycode | Punycode support for Bare |
Module system, build & packaging
Module resolution and traversal, addon linking and prebuilding, and bundle/app packaging.
| Module | Description |
|---|---|
| bare-module-resolve | Low-level module resolution algorithm for Bare — reference |
| bare-module-traverse | Low-level module graph traversal for Bare — reference |
| bare-addon-resolve | Low-level addon resolution algorithm for Bare — reference |
| bare-addon | Native addon template for Bare |
| bare-link | Native addon linker for Bare |
| bare-prebuild | Recursively prebuild installed native addons from source |
| bare-boot | Boot drives in Bare |
| bare-run | Cross-platform script runner for Bare |
| bare-which | Find a program in $PATH |
| bare-open | Cross-platform application launcher for Bare |
| bare-storage | Minimal, cross-platform directory locator for Bare |
| bare-pack-drive | Pack drives to Bare bundles |
| bare-bundle-compile | Compile a bundle of CommonJS modules to a single module |
| bare-union-bundle | Combine multiple bundles into a union bundle — reference |
| bare-stow | Module bundling and harness generation for Bare |
| bare-distributable | Template for creating custom Bare distributables |
| bare-apk | APK packaging tools for Bare — reference |
| bare-app-image | AppImage packaging tools for Bare |
Native bindings
Bindings to native libraries and platform capabilities. Several are platform-specific (the name indicates the target).
| Module | Description |
|---|---|
| bare-sqlite | SQLite bindings for Bare — reference |
| bare-sqlite-vector | SQLite vector-search bindings for Bare |
| bare-sdl | SDL bindings for Bare — reference |
| bare-bluetooth-android | Android Bluetooth bindings for Bare — reference |
| bare-bluetooth-apple | Apple CoreBluetooth bindings for Bare — reference |
| bare-posix | POSIX-specific bindings for Bare — reference |
| bare-stdio | Standard input/output streams for Bare |
| bare-xdiff | libxdiff bindings for Bare |
| bare-delta | Binary patch handling for Bare |
| bare-md4c | MD4C markdown push-parser bindings |
| bare-system-logger | System logger for Bare |
Logging, metrics & testing
| Module | Description |
|---|---|
| bare-prom-client | Prometheus metrics client — reference |
| bare-diagnostics-channel | Publish data to named diagnostics channels |
| bare-debug-log | Simple debug log for JavaScript |
| bare-file-logger | File-system logger for Bare |
| bare-cov | Generate coverage reports using Bare and Node.js |
| bare-tap | Minimal TAP test library for Bare |
Terminal UI
Extensions for bare-tui, the terminal-UI framework.
| Module | Description |
|---|---|
| bare-tui-form | Declarative form builder for bare-tui |
| bare-tui-paparam | Menu/form helper for paparam CLIs |
| bare-tui-markdown | Limited markdown renderer for bare-tui |
Other utilities
| Module | Description |
|---|---|
| bare-sidecar | Start and manage Bare sidecar processes from Node.js and Electron — reference |
| bare-broadcast-channel | Multi-producer, multi-consumer inter-thread broadcast messaging — reference |
| bare-type-stripper | Strip TypeScript type syntax to produce plain JavaScript |
| bare-node-fetch | Cross-runtime fetch module |
| bare-mdns-discovery | Multicast DNS (mDNS) service discovery for Bare — reference |
| bare-mime | MIME-type parsing for Bare — reference |
See also
- Inside Bare—what the runtime is and why its standard library is opt-in.
- Bare runtime API—the
Bareglobal these modules build on. bareCLI—run a script or REPL on Bare.- Bare Kit—embed a Bare worklet in a native app.
- Modules—higher-level
pear-*modules built on Bare. pear-runtimereference—JavaScript API exposed inside a running Pear app.- Runtime and languages—the language-and-runtime story behind both.