# @publicdomainrelay/atlibs atlibs runs WebAssembly modules published as atproto records, in a browser page or a Node server. A module plans XRPC calls; the host makes them with the user's session. ESM, no build step, no dependencies. Docs, the Rust host and the `atlibs` CLI: https://knotless.dev/johnandersen777.bsky.social/atlibs ```bash npm i @publicdomainrelay/atlibs ``` ```js import { localModule, runModule } from '@publicdomainrelay/atlibs/run-module/index.js' ``` A page maps the same paths through its import map: ```html ``` ## Entry points Every `src//index.js` is `@publicdomainrelay/atlibs//index.js`. - Browser and Node: `run-module`, `compose`, `mcp`, `oauth`, `attest`, `didkey`, `encoding`, `cubit`, `component`, `plugin-context` - Node only: `server` (`node:sqlite`, `node:fs`, `node:worker_threads`; its CLI is `server/cli.mjs`), `oauth-server` (needs the optional peers `@atproto/oauth-client-node` and `@atproto/jwk-jose`), `serviceauth` (`node:crypto`) Node 25 or later (`Uint8Array.prototype.toBase64`); browsers: Chrome 140, Firefox 133, Safari 18.2. Public domain ([Unlicense](https://unlicense.org)).