JavaScript pub/sub library supporting advanced subscription features, and several helpful add-ons.
See the codePub/Sub message bus for JavaScript and TypeScript.
* matches a single topic segment, # matches zero or morenpm install postal
import { getChannel } from "postal";
const orders = getChannel("orders");
orders.subscribe("order.created", envelope => {
console.log("New order:", envelope.payload.orderId);
});
orders.publish("order.created", { orderId: "abc-123" });
For the full API — wildcards, RPC, wire taps, transports — see the docs.
Upgrading from v2? postal v3 is a ground-up rewrite with breaking changes to the module system, subscriber callbacks, envelope shape, and more. See the v2 → v3 migration guide before upgrading.
| Package | npm | Description |
|---|---|---|
| postal | postal | Core message bus |
| postal-transport-messageport | postal-transport-messageport | MessagePort transport for iframes and workers |
| postal-transport-broadcastchannel | postal-transport-broadcastchannel | BroadcastChannel transport for cross-tab messaging |
| postal-transport-serviceworker | postal-transport-serviceworker | ServiceWorker transport — dedicated MessagePort per tab, presence tracking, SW restart resilience |
| postal-transport-childprocess | postal-transport-childprocess | child_process/cluster IPC transport for Node.js |
| postal-transport-uds | postal-transport-uds | Unix domain socket transport for independent Node.js processes |
pnpm install # Install dependencies
pnpm build # Build all packages
pnpm test # Run all tests
pnpm lint # Lint all packages
pnpm run checks # lint + test + build (CI gate)
MIT
Overall
Maintained
Code review
npm
Latest release
Releases this year
253 followers · starred Oct 2011
719 followers · starred Oct 2011
107 followers · starred Apr 2013
362 followers · starred Jan 2014
JavaScript pub/sub library supporting advanced subscription features, and several helpful add-ons.
See the codePub/Sub message bus for JavaScript and TypeScript.
* matches a single topic segment, # matches zero or morenpm install postal
import { getChannel } from "postal";
const orders = getChannel("orders");
orders.subscribe("order.created", envelope => {
console.log("New order:", envelope.payload.orderId);
});
orders.publish("order.created", { orderId: "abc-123" });
For the full API — wildcards, RPC, wire taps, transports — see the docs.
Upgrading from v2? postal v3 is a ground-up rewrite with breaking changes to the module system, subscriber callbacks, envelope shape, and more. See the v2 → v3 migration guide before upgrading.
| Package | npm | Description |
|---|---|---|
| postal | postal | Core message bus |
| postal-transport-messageport | postal-transport-messageport | MessagePort transport for iframes and workers |
| postal-transport-broadcastchannel | postal-transport-broadcastchannel | BroadcastChannel transport for cross-tab messaging |
| postal-transport-serviceworker | postal-transport-serviceworker | ServiceWorker transport — dedicated MessagePort per tab, presence tracking, SW restart resilience |
| postal-transport-childprocess | postal-transport-childprocess | child_process/cluster IPC transport for Node.js |
| postal-transport-uds | postal-transport-uds | Unix domain socket transport for independent Node.js processes |
pnpm install # Install dependencies
pnpm build # Build all packages
pnpm test # Run all tests
pnpm lint # Lint all packages
pnpm run checks # lint + test + build (CI gate)
MIT
Overall
Maintained
Code review
npm
Latest release
Releases this year
253 followers · starred Oct 2011
719 followers · starred Oct 2011
107 followers · starred Apr 2013
362 followers · starred Jan 2014