{"id":20570166,"url":"https://github.com/holepunchto/bare","last_synced_at":"2026-01-27T20:59:05.235Z","repository":{"id":222510063,"uuid":"579604150","full_name":"holepunchto/bare","owner":"holepunchto","description":"Small and modular JavaScript runtime for desktop and mobile","archived":false,"fork":false,"pushed_at":"2026-01-25T08:37:42.000Z","size":1797,"stargazers_count":952,"open_issues_count":0,"forks_count":25,"subscribers_count":22,"default_branch":"main","last_synced_at":"2026-01-25T22:57:39.217Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://bare.pears.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/holepunchto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-18T08:51:10.000Z","updated_at":"2026-01-25T08:37:46.000Z","dependencies_parsed_at":"2024-05-08T10:26:14.844Z","dependency_job_id":"feb9d11c-705b-4420-bc16-b4b74906f548","html_url":"https://github.com/holepunchto/bare","commit_stats":{"total_commits":1147,"total_committers":6,"mean_commits":"191.16666666666666","dds":0.09328683522231906,"last_synced_commit":"034f5cc3096b895baf3e1f72310dc37c075bc007"},"previous_names":["holepunchto/bare"],"tags_count":102,"template":false,"template_full_name":null,"purl":"pkg:github/holepunchto/bare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holepunchto%2Fbare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holepunchto%2Fbare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holepunchto%2Fbare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holepunchto%2Fbare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/holepunchto","download_url":"https://codeload.github.com/holepunchto/bare/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holepunchto%2Fbare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28822770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T18:44:20.126Z","status":"ssl_error","status_checked_at":"2026-01-27T18:44:09.161Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T05:11:37.270Z","updated_at":"2026-01-27T20:59:05.226Z","avatar_url":"https://github.com/holepunchto.png","language":"C","funding_links":[],"categories":["**Awesome Pears 🍐**","C"],"sub_categories":["Pears"],"readme":"\u003ch1\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./media/logo-light.svg\"\u003e\n    \u003cimg alt=\"Bare\" src=\"./media/logo-dark.svg\" height=\"80\"\u003e\n  \u003c/picture\u003e\n\u003c/h1\u003e\n\nSmall 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, it makes embedding and cross-device support core use cases, aiming to run just as well on your phone as on your laptop. The result is a runtime ideal for networked, peer-to-peer applications that can run on a wide selection of hardware.\n\n```sh\nnpm i -g bare\n```\n\n## Usage\n\n```console\nbare [flags] \u003cfilename\u003e [...args]\n\nEvaluate a script or start a REPL session if no script is provided.\n\nArguments:\n  \u003cfilename\u003e            The name of a script to evaluate\n  [...args]             Additional arguments made available to the script\n\nFlags:\n  --version|-v          Print the Bare version\n  --eval|-e \u003cscript\u003e    Evaluate an inline script\n  --print|-p \u003cscript\u003e   Evaluate an inline script and print the result\n  --inspect             Activate the inspector\n  --help|-h             Show help\n```\n\nThe specified `\u003cscript\u003e` or `\u003cfilename\u003e` is run using `Module.load()`. For more information on the module system and the supported formats, see \u003chttps://github.com/holepunchto/bare-module\u003e.\n\n## Architecture\n\nBare is built on top of \u003chttps://github.com/holepunchto/libjs\u003e, which provides low-level bindings to V8 in an engine independent manner, and \u003chttps://github.com/libuv/libuv\u003e, which provides an asynchronous I/O event loop. Bare itself only adds a few missing pieces on top to support a wider ecosystem of modules:\n\n1. A module system supporting both CJS and ESM with bidirectional interoperability between the two.\n2. A native addon system supporting both statically and dynamically linked addons.\n3. Light-weight thread support with synchronous joins and shared array buffer support.\n\nEverything else if left to userland modules to implement using these primitives, keeping the runtime itself succinct and _bare_. By abstracting over both the underlying JavaScript engine using `libjs` and platform I/O operations using `libuv`, Bare allows module authors to implement native addons that can run on any JavaScript engine that implements the `libjs` ABI and any system that `libuv` supports.\n\n## API\n\n### `Bare`\n\nThe core JavaScript API of Bare is available through the global `Bare` namespace.\n\n#### `Bare.platform`\n\nThe identifier of the operating system for which Bare was compiled. The possible values are `android`, `darwin`, `ios`, `linux`, and `win32`.\n\n#### `Bare.arch`\n\nThe identifier of the processor architecture for which Bare was compiled. The possible values are `arm`, `arm64`, `ia32`, `mips`, `mipsel`, and `x64`.\n\n#### `Bare.argv`\n\nThe command line arguments passed to the process when launched.\n\n#### `Bare.pid`\n\nThe ID of the current process.\n\n#### `Bare.exitCode`\n\nThe code that will be returned once the process exits. If the process is exited using `Bare.exit()` without specifying a code, `Bare.exitCode` is used.\n\n#### `Bare.version`\n\nThe Bare version string.\n\n#### `Bare.versions`\n\nAn object containing the version strings of Bare and its dependencies.\n\n#### `Bare.exit([code])`\n\nImmediately terminate the process or current thread with an exit status of `code` which defaults to `Bare.exitCode`.\n\n#### `Bare.suspend([linger])`\n\nSuspend the process and all threads. This will emit a `suspend` event signalling that all work should stop immediately. When all work has stopped and the process would otherwise exit, an `idle` event will be emitted. If the process is not resumed from an `idle` event listener, the loop will block until the process is resumed.\n\n#### `Bare.wakeup([deadline])`\n\nWake the process and all threads during suspension. This will emit a `wakeup` event signalling that work may be performed until `deadline` is reached.\n\n#### `Bare.idle()`\n\nImmediately suspend the event loop and trigger the `idle` event.\n\n#### `Bare.resume()`\n\nResume the process and all threads after suspension. This can be used to cancel suspension after the `suspend` event has been emitted and up until all `idle` event listeners have run.\n\n#### `Bare.on('uncaughtException', err)`\n\nEmitted when a JavaScript exception is thrown within an execution context without being caught by any exception handlers within that execution context. By default, uncaught exceptions are printed to `stderr` and the processes aborted. Adding an event listener for the `uncaughtException` event overrides the default behavior.\n\n#### `Bare.on('unhandledRejection', reason, promise)`\n\nEmitted when a JavaScript promise is rejected within an execution context without that rejection being handled within that execution context. By default, unhandled rejections are printed to `stderr` and the process aborted. Adding an event listener for the `unhandledRejection` event overrides the default behavior.\n\n#### `Bare.on('beforeExit', code)`\n\nEmitted when the loop runs out of work and before the process or current thread exits. This provides a chance to schedule additional work and keep the process from exiting. If additional work is scheduled, `beforeExit` will be emitted again once the loop runs out of work.\n\nIf the process is exited explicitly, such as by calling `Bare.exit()` or as the result of an uncaught exception, the `beforeExit` event will not be emitted.\n\n#### `Bare.on('exit', code)`\n\nEmitted when the process or current thread exits. If the process is forcefully terminated from an `exit` event listener, the remaining listeners will not run.\n\n\u003e [!CAUTION]  \n\u003e Additional work **MUST NOT** be scheduled from an `exit` event listener.\n\n#### `Bare.on('suspend', linger)`\n\nEmitted when the process or current thread is suspended. Any in-progress or outstanding work, such as network activity or file system access, should be deferred, cancelled, or paused when the `suspend` event is emitted and no additional work should be scheduled. A `suspend` event listener may call `Bare.resume()` to cancel the suspension.\n\n#### `Bare.on('wakeup', deadline)`\n\nEmitted when the process or current thread wakes up during suspension. Once the process becomes idle, or if the process is not idle by the time `deadline` has passed, the process will suspend itself again and an `idle` event be emitted. A `wakeup` event listener may call `Bare.resume()` to resume the process.\n\n#### `Bare.on('idle')`\n\nEmitted when the process or current thread becomes idle after suspension. After all handlers have run, the event loop will block and no additional work be performed until the process is resumed. An `idle` event listener may call `Bare.resume()` to cancel the suspension.\n\n#### `Bare.on('resume')`\n\nEmitted when the process or current thread resumes after suspension. Deferred and paused work should be continued when the `resume` event is emitted and new work may again be scheduled.\n\n### Lifecycle\n\n```mermaid\nstateDiagram\n  direction LR\n  [*] --\u003e Active\n  Active --\u003e Suspending: Bare.suspend()\n  Active --\u003e Terminated: Bare.exit()\n  Active --\u003e Exiting\n  Suspending --\u003e Active: Bare.resume()\n  Suspending --\u003e Awake: Bare.wakeup()\n  Suspending --\u003e Suspended: Bare.idle()\n  Suspending --\u003e Terminated: Bare.exit()\n  Suspending --\u003e Idle\n  Awake --\u003e Active: Bare.resume()\n  Awake --\u003e Suspended: Bare.idle()\n  Awake --\u003e Terminated: Bare.exit()\n  Awake --\u003e Idle\n  Idle --\u003e Suspended\n  Idle --\u003e Active: Bare.resume()\n  Idle --\u003e Terminated: Bare.exit()\n  Suspended --\u003e Active\n  Suspended --\u003e Awake: Bare.wakeup()\n  Terminated --\u003e Exiting\n  Exiting --\u003e [*]\n```\n\n### `Bare.Addon`\n\nThe `Bare.Addon` namespace provides support for loading native addons, which are typically written in C/C++ and distributed as shared libraries.\n\n\u003e [!NOTE]  \n\u003e This is an advanced API that users should never have to interact with directly.\n\n#### `Addon.cache`\n\nThe global cache of loaded addons.\n\n#### `Addon.host`\n\nThe target triplet identifying the current addon host.\n\n#### `const url = Addon.resolve(specifier, parentURL[, options])`\n\nResolve a native addon specifier by searching for a static native addon or dynamic object library matching `specifier` imported from `parentURL`.\n\nOptions are reserved.\n\n#### `const addon = Addon.load(url[, options])`\n\nLoad a static or dynamic native addon identified by `url`. If `url` is not a static native addon, Bare will instead look for a matching dynamic object library.\n\nOptions are reserved.\n\n#### `addon.url`\n\nThe WHATWG `URL` identifier of the addon.\n\n#### `addon.exports`\n\nThe exports of the addon.\n\n### `Bare.Thread`\n\nThe `Bare.Thread` namespace provides support for lightweight threads. Threads are similar to workers in Node.js, but provide only minimal API surface for creating and joining threads.\n\n\u003e [!NOTE]  \n\u003e This is an advanced API that users should never have to interact with directly.\n\n#### `Thread.isMainThread`\n\n`true` if the current thread is the main thread.\n\n#### `Thread.self`\n\nA reference to the current thread as a `ThreadProxy` object. Will be `null` on the main thread.\n\n#### `Thread.self.data`\n\nThe data that was passed to the current thread on creation. Will be `null` if no data was passed.\n\n#### `const thread = new Thread([filename][, options][, callback])`\n\nStart a new thread that will run the contents of `filename`. If `callback` is provided, its function body will be treated as the contents of `filename` and invoked on the new thread with `Thread.self.data` passed as an argument.\n\nOptions include:\n\n```js\n{\n  // Optional data to pass to the thread\n  data: null,\n  // Optional transfer list\n  transfer: [],\n  // Optional file source, will be read from `filename` if neither `source` nor `callback` are provided\n  source: string | Buffer,\n  // Optional source encoding if `source` is a string\n  encoding: 'utf8',\n  // Optional stack size in bytes, pass 0 for default\n  stackSize: 0\n}\n```\n\n#### `const thread = Thread.create([filename][, options][, callback])`\n\nConvenience method for the `new Thread()` constructor\n\n#### `thread.joined`\n\nWhether or not the thread has been joined with the current thread.\n\n#### `thread.join()`\n\nBlock and wait for the thread to exit.\n\n#### `thread.suspend([linger])`\n\nSuspend the thread. Equivalent to calling `Bare.suspend()` from within the thread.\n\n#### `thread.wakeup([deadline])`\n\nWake the thread. Equivalent to calling `Bare.wakeup()` from within the thread.\n\n#### `thread.resume()`\n\nResume the thread. Equivalent to calling `Bare.resume()` from within the thread.\n\n#### `thread.terminate()`\n\nTerminate the thread. Equivalent to calling `Bare.exit()` from within the thread.\n\n### Embedding\n\nBare can easily be embedded using the C API defined in [`include/bare.h`](include/bare.h):\n\n```c\n#include \u003cbare.h\u003e\n#include \u003cuv.h\u003e\n\nbare_t *bare;\nbare_setup(uv_default_loop(), platform, \u0026env /* Optional */, argc, argv, options, \u0026bare);\n\nbare_load(bare, filename, source, \u0026module /* Optional */);\n\nbare_run(bare, UV_RUN_DEFAULT);\n\nint exit_code;\nbare_teardown(bare, UV_RUN_DEFAULT, \u0026exit_code);\n```\n\nIf `source` is `NULL`, the contents of `filename` will instead be read at runtime. For examples of how to embed Bare on mobile platforms, see \u003chttps://github.com/holepunchto/bare-android\u003e and \u003chttps://github.com/holepunchto/bare-ios\u003e.\n\n### Suspension\n\nBare provides a mechanism for implementing process suspension, which is needed for platforms with strict application lifecycle constraints, such as mobile platforms. When suspended, using either `bare_suspend()` from C or `Bare.suspend()` from JavaScript, a `suspend` event will be emitted on the `Bare` namespace. Then, when the loop has no work left and would otherwise exit, an `idle` event will be emitted and the loop blocked, keeping it from exiting. When the process is later resumed, using either `bare_resume()` from C or `Bare.resume()` from JavaScript, a `resume` event will be emitted and the loop unblocked, allowing it to exit when no work is left.\n\nWhile suspended, the loop may also be woken up for limited periods of time to perform work, using either `bare_wakeup()` from C or `Bare.wakeup()` from JavaScript, which will emit a `wakeup` event. Each wakeup has an associated deadline after which the loop will be stopped and the process suspended again, emitting another `idle` event.\n\n## Building\n\n\u003chttps://github.com/holepunchto/bare-make\u003e is used for compiling Bare. Start by installing the tool globally:\n\n```console\nnpm i -g bare-make\n```\n\nNext, install the required build and runtime dependencies:\n\n```console\nnpm i\n```\n\nThen, generate the build system:\n\n```console\nbare-make generate\n```\n\nThis only has to be run once per repository checkout. When updating `bare-make` or your compiler toolchain it might also be necessary to regenerate the build system. To do so, run the command again with the `--no-cache` flag set to disregard the existing build system cache:\n\n```console\nbare-make generate --no-cache\n```\n\nWith a build system generated, Bare can be compiled:\n\n```console\nbare-make build\n```\n\nWhen completed, the `bare(.exe)` binary will be available in the `build/bin` directory and the `libbare.(a|lib)` and `(lib)bare.(dylib|dll|lib)` libraries will be available in the root of the `build` directory.\n\n### Linking\n\nWhen linking against the static `libbare.(a|lib)` library, make sure to use whole archive linking as Bare relies on constructor functions for registering native addons. Without whole archive linking, the linker will remove the constructor functions as they aren't referenced by anything.\n\n### Options\n\nBare provides a few compile options that can be configured to customize various aspects of the runtime. Compile options may be set by passing the `--define option=value` flag to the `bare-make generate` command when generating the build system.\n\n\u003e [!WARNING]  \n\u003e The compile options are not covered by semantic versioning and are subject to change without warning.\n\n| Option           | Default                    | Description                                             |\n| :--------------- | :------------------------- | :------------------------------------------------------ |\n| `BARE_ENGINE`    | `github:holepunchto/libjs` | The JavaScript engine to use                            |\n| `BARE_PREBUILDS` | `ON`                       | Enable prebuilds for supported third-party dependencies |\n\n## Platform support\n\nBare uses a tiered support system to manage expectations for the platforms that it targets. Targets may move between tiers between minor releases and as such a change in tier will not be considered a breaking change.\n\n**Tier 1:** Platform targets for which prebuilds are provided as defined by the [`.github/workflows/prebuild.yml`](.github/workflows/prebuild.yml) workflow. Compilation and test failures for these targets will cause workflow runs to go red.\n\n**Tier 2:** Platform targets for which Bare is known to work, but without automated compilation and testing. Regressions may occur between releases and will be considered bugs.\n\n\u003e [!NOTE]  \n\u003e Development happens primarily on Apple hardware with Linux and Windows systems running as virtual machines.\n\n| Platform | Architecture | Version                              | Tier | Notes                                  |\n| :------- | :----------- | :----------------------------------- | :--- | :------------------------------------- |\n| Linux    | `arm64`      | \u003e= Linux 5.15, \u003e= GNU C Library 2.35 | 1    | Ubuntu 22.04, Debian 12, OpenWrt 23.05 |\n| Linux    | `x64`        | \u003e= Linux 5.15, \u003e= GNU C Library 2.35 | 1    | Ubuntu 22.04, Debian 12, OpenWrt 23.05 |\n| Linux    | `arm`        | \u003e= Linux 5.10, \u003e= musl 1.2           | 2    | Alpine 3.13, OpenWrt 22.03             |\n| Linux    | `arm64`      | \u003e= Linux 5.10, \u003e= musl 1.2           | 2    | Alpine 3.13, OpenWrt 22.03             |\n| Linux    | `ia32`       | \u003e= Linux 5.10, \u003e= musl 1.2           | 2    | Alpine 3.13, OpenWrt 22.03             |\n| Linux    | `x64`        | \u003e= Linux 5.10, \u003e= musl 1.2           | 2    | Alpine 3.13, OpenWrt 22.03             |\n| Linux    | `mips`       | \u003e= Linux 5.10, \u003e= musl 1.2           | 2    | OpenWrt 22.03                          |\n| Linux    | `mipsel`     | \u003e= Linux 5.10, \u003e= musl 1.2           | 2    | OpenWrt 22.03                          |\n| Android  | `arm`        | \u003e= 10                                | 1    |\n| Android  | `arm64`      | \u003e= 10                                | 1    |\n| Android  | `ia32`       | \u003e= 10                                | 1    |\n| Android  | `x64`        | \u003e= 10                                | 1    |\n| macOS    | `arm64`      | \u003e= 12.0                              | 1    |\n| macOS    | `x64`        | \u003e= 12.0                              | 1    |\n| iOS      | `arm64`      | \u003e= 14.0                              | 1    |\n| iOS      | `x64`        | \u003e= 14.0                              | 1    | Simulator only                         |\n| Windows  | `arm64`      | \u003e= Windows 11                        | 1    |\n| Windows  | `x64`        | \u003e= Windows 10                        | 1    |\n\n## Modules\n\nBare provides no standard library beyond the core JavaScript API available through the `Bare` namespace. Instead, we maintain a comprehensive collection of external modules built specifically for Bare.\n\n| Module                                                                        | Description                                                                              | Version                                                 |\n| :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- | :------------------------------------------------------ |\n| [bare-abort](https://github.com/holepunchto/bare-abort)                       | Cause abnormal program termination and generate a crash report                           | ![](https://img.shields.io/npm/v/bare-abort)            |\n| [bare-ansi-escapes](https://github.com/holepunchto/bare-ansi-escapes)         | Parse and produce ANSI escape sequences                                                  | ![](https://img.shields.io/npm/v/bare-ansi-escapes)     |\n| [bare-assert](https://github.com/holepunchto/bare-assert)                     | Assertion library for JavaScript                                                         | ![](https://img.shields.io/npm/v/bare-assert)           |\n| [bare-atomics](https://github.com/holepunchto/bare-atomics)                   | Native synchronization primitives for JavaScript                                         | ![](https://img.shields.io/npm/v/bare-atomics)          |\n| [bare-buffer](https://github.com/holepunchto/bare-buffer)                     | Native buffers for JavaScript                                                            | ![](https://img.shields.io/npm/v/bare-buffer)           |\n| [bare-bundle](https://github.com/holepunchto/bare-bundle)                     | Application bundle format for JavaScript, inspired by \u003chttps://github.com/electron/asar\u003e | ![](https://img.shields.io/npm/v/bare-bundle)           |\n| [bare-channel](https://github.com/holepunchto/bare-channel)                   | Inter-thread messaging for JavaScript                                                    | ![](https://img.shields.io/npm/v/bare-channel)          |\n| [bare-console](https://github.com/holepunchto/bare-console)                   | WHATWG debugging console for JavaScript                                                  | ![](https://img.shields.io/npm/v/bare-console)          |\n| [bare-crypto](https://github.com/holepunchto/bare-crypto)                     | Cryptographic primitives for JavaScript                                                  | ![](https://img.shields.io/npm/v/bare-crypto)           |\n| [bare-daemon](https://github.com/holepunchto/bare-daemon)                     | Create and manage daemon processes in JavaScript                                         | ![](https://img.shields.io/npm/v/bare-daemon)           |\n| [bare-dgram](https://github.com/holepunchto/bare-dgram)                       | Native UDP for JavaScript                                                                | ![](https://img.shields.io/npm/v/bare-dgram)            |\n| [bare-dns](https://github.com/holepunchto/bare-dns)                           | Domain name resolution for JavaScript                                                    | ![](https://img.shields.io/npm/v/bare-dns)              |\n| [bare-encoding](https://github.com/holepunchto/bare-encoding)                 | WHATWG text encoding interfaces for JavaScript                                           | ![](https://img.shields.io/npm/v/bare-encoding)         |\n| [bare-env](https://github.com/holepunchto/bare-env)                           | Environment variable support for JavaScript                                              | ![](https://img.shields.io/npm/v/bare-env)              |\n| [bare-events](https://github.com/holepunchto/bare-events)                     | Event emitters for JavaScript                                                            | ![](https://img.shields.io/npm/v/bare-events)           |\n| [bare-fetch](https://github.com/holepunchto/bare-fetch)                       | WHATWG Fetch implementation for Bare                                                     | ![](https://img.shields.io/npm/v/bare-fetch)            |\n| [bare-form-data](https://github.com/holepunchto/bare-form-data)               | Form data support for Bare                                                               | ![](https://img.shields.io/npm/v/bare-form-data)        |\n| [bare-format](https://github.com/holepunchto/bare-format)                     | String formatting for JavaScript                                                         | ![](https://img.shields.io/npm/v/bare-format)           |\n| [bare-fs](https://github.com/holepunchto/bare-fs)                             | Native file system for JavaScript                                                        | ![](https://img.shields.io/npm/v/bare-fs)               |\n| [bare-hrtime](https://github.com/holepunchto/bare-hrtime)                     | High-resolution timers for JavaScript                                                    | ![](https://img.shields.io/npm/v/bare-hrtime)           |\n| [bare-http1](https://github.com/holepunchto/bare-http1)                       | HTTP/1 library for JavaScript                                                            | ![](https://img.shields.io/npm/v/bare-http1)            |\n| [bare-https](https://github.com/holepunchto/bare-https)                       | HTTPS library for JavaScript                                                             | ![](https://img.shields.io/npm/v/bare-https)            |\n| [bare-inspect](https://github.com/holepunchto/bare-inspect)                   | Inspect objects as strings for debugging                                                 | ![](https://img.shields.io/npm/v/bare-inspect)          |\n| [bare-inspector](https://github.com/holepunchto/bare-inspector)               | V8 inspector support for Bare                                                            | ![](https://img.shields.io/npm/v/bare-inspector)        |\n| [bare-ipc](https://github.com/holepunchto/bare-ipc)                           | Lightweight pipe-based IPC for Bare                                                      | ![](https://img.shields.io/npm/v/bare-ipc)              |\n| [bare-logger](https://github.com/holepunchto/bare-logger)                     | Low-level logger for Bare with system log integration                                    | ![](https://img.shields.io/npm/v/bare-logger)           |\n| [bare-module](https://github.com/holepunchto/bare-module)                     | Module support for JavaScript                                                            | ![](https://img.shields.io/npm/v/bare-module)           |\n| [bare-os](https://github.com/holepunchto/bare-os)                             | Operating system utilities for JavaScript                                                | ![](https://img.shields.io/npm/v/bare-os)               |\n| [bare-pack](https://github.com/holepunchto/bare-pack)                         | Bundle packing for Bare                                                                  | ![](https://img.shields.io/npm/v/bare-pack)             |\n| [bare-path](https://github.com/holepunchto/bare-path)                         | Path manipulation library for JavaScript                                                 | ![](https://img.shields.io/npm/v/bare-path)             |\n| [bare-performance](https://github.com/holepunchto/bare-performance)           | Performance monitoring for Bare                                                          | ![](https://img.shields.io/npm/v/bare-performance)      |\n| [bare-pipe](https://github.com/holepunchto/bare-pipe)                         | Native I/O pipes for JavaScript                                                          | ![](https://img.shields.io/npm/v/bare-pipe)             |\n| [bare-queue-microtask](https://github.com/holepunchto/bare-queue-microtask)   | Microtask queuing for Bare                                                               | ![](https://img.shields.io/npm/v/bare-queue-microtask)  |\n| [bare-readline](https://github.com/holepunchto/bare-readline)                 | Line editing for interactive CLIs with command history                                   | ![](https://img.shields.io/npm/v/bare-readline)         |\n| [bare-realm](https://github.com/holepunchto/bare-realm)                       | Realm support for Bare                                                                   | ![](https://img.shields.io/npm/v/bare-realm)            |\n| [bare-repl](https://github.com/holepunchto/bare-repl)                         | Read-Evaluate-Print-Loop environment for JavaScript                                      | ![](https://img.shields.io/npm/v/bare-repl)             |\n| [bare-rpc](https://github.com/holepunchto/bare-rpc)                           | \u003chttps://github.com/holepunchto/librpc\u003e ABI compatible RPC for Bare                      | ![](https://img.shields.io/npm/v/bare-rpc)              |\n| [bare-semver](https://github.com/holepunchto/bare-semver)                     | Minimal semantic versioning library for Bare                                             | ![](https://img.shields.io/npm/v/bare-semver)           |\n| [bare-signals](https://github.com/holepunchto/bare-signals)                   | Native signal handling for JavaScript                                                    | ![](https://img.shields.io/npm/v/bare-signals)          |\n| [bare-stream](https://github.com/holepunchto/bare-stream)                     | Streaming data for JavaScript                                                            | ![](https://img.shields.io/npm/v/bare-stream)           |\n| [bare-structured-clone](https://github.com/holepunchto/bare-structured-clone) | Structured cloning algorithm for JavaScript                                              | ![](https://img.shields.io/npm/v/bare-structured-clone) |\n| [bare-subprocess](https://github.com/holepunchto/bare-subprocess)             | Native process spawning for JavaScript                                                   | ![](https://img.shields.io/npm/v/bare-subprocess)       |\n| [bare-tcp](https://github.com/holepunchto/bare-tcp)                           | Native TCP sockets for JavaScript                                                        | ![](https://img.shields.io/npm/v/bare-tcp)              |\n| [bare-thread](https://github.com/holepunchto/bare-thread)                     | Thread support for Bare                                                                  | ![](https://img.shields.io/npm/v/bare-thread)           |\n| [bare-timers](https://github.com/holepunchto/bare-timers)                     | Native timers for JavaScript                                                             | ![](https://img.shields.io/npm/v/bare-timers)           |\n| [bare-tls](https://github.com/holepunchto/bare-tls)                           | Transport Layer Security (TLS) streams for JavaScript                                    | ![](https://img.shields.io/npm/v/bare-tls)              |\n| [bare-tty](https://github.com/holepunchto/bare-tty)                           | Native TTY streams for JavaScript                                                        | ![](https://img.shields.io/npm/v/bare-tty)              |\n| [bare-type](https://github.com/holepunchto/bare-type)                         | Cross-realm type predicates for Bare                                                     | ![](https://img.shields.io/npm/v/bare-type)             |\n| [bare-unpack](https://github.com/holepunchto/bare-unpack)                     | Bundle unpacking for Bare                                                                | ![](https://img.shields.io/npm/v/bare-unpack)           |\n| [bare-url](https://github.com/holepunchto/bare-url)                           | WHATWG URL implementation for JavaScript                                                 | ![](https://img.shields.io/npm/v/bare-url)              |\n| [bare-worker](https://github.com/holepunchto/bare-worker)                     | Higher-level worker threads for JavaScript                                               | ![](https://img.shields.io/npm/v/bare-worker)           |\n| [bare-ws](https://github.com/holepunchto/bare-ws)                             | WebSocket library for JavaScript                                                         | ![](https://img.shields.io/npm/v/bare-ws)               |\n| [bare-zlib](https://github.com/holepunchto/bare-zlib)                         | Stream-based zlib bindings for JavaScript                                                | ![](https://img.shields.io/npm/v/bare-zlib)             |\n| [bare-zmq](https://github.com/holepunchto/bare-zmq)                           | Low-level ZeroMQ bindings for JavaScript                                                 | ![](https://img.shields.io/npm/v/bare-zmq)              |\n\n## License\n\nApache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholepunchto%2Fbare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fholepunchto%2Fbare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholepunchto%2Fbare/lists"}